From 7ad7ec9a0f87f47c3694b251d9f3f09938c0fa1c Mon Sep 17 00:00:00 2001 From: Craig Date: Thu, 17 Apr 2025 21:01:13 -0400 Subject: [PATCH 01/20] convert to foundry project --- .gitmodules | 3 + README.md | 49 +- foundry.toml | 20 + hardhat.config.js | 51 - out/AccessControl.sol/AccessControl.json | 1 + out/ActionHopper.sol/ActionHopper.json | 1 + out/Base.sol/CommonBase.json | 1 + out/Base.sol/ScriptBase.json | 1 + out/Base.sol/TestBase.json | 1 + out/Constants.sol/Constants.json | 1 + out/Context.sol/Context.json | 1 + out/ERC165.sol/ERC165.json | 1 + out/ERC20.sol/ERC20.json | 1 + out/ERC721.sol/ERC721.json | 1 + .../ERC721Receivable.json | 1 + out/ERC721Utils.sol/ERC721Utils.json | 1 + out/Enums.sol/Enums.json | 1 + out/IAccessControl.sol/IAccessControl.json | 1 + out/IERC165.sol/IERC165.json | 1 + out/IERC20.sol/IERC20.json | 1 + out/IERC20Metadata.sol/IERC20Metadata.json | 1 + out/IERC721.sol/IERC721.json | 1 + out/IERC721Metadata.sol/IERC721Metadata.json | 1 + out/IERC721Receiver.sol/IERC721Receiver.json | 1 + out/IMulticall3.sol/IMulticall3.json | 1 + out/IOGRE20Factory.sol/IOGRE20Factory.json | 1 + out/IOGRE721.sol/IOGRE721.json | 1 + out/IOGRE721Factory.sol/IOGRE721Factory.json | 1 + out/IOGREDAO.sol/IOGREDAO.json | 1 + out/IOGREDAOFactory.sol/IOGREDAOFactory.json | 1 + out/IOGREMarket.sol/IOGREMarket.json | 1 + .../IOGREMarketFactory.json | 1 + out/IOGREProposal.sol/IOGREProposal.json | 1 + .../IOGREProposalFactory.json | 1 + out/IOGRETreasury.sol/IOGRETreasury.json | 1 + .../IOGRETreasuryFactory.json | 1 + out/Math.sol/Math.json | 1 + out/OGRE20.sol/OGRE20.json | 1 + out/OGRE20Factory.sol/OGRE20Factory.json | 1 + out/OGRE721.sol/OGRE721.json | 1 + out/OGRE721Factory.sol/OGRE721Factory.json | 1 + out/OGREBridge.sol/OGREBridge.json | 1 + out/OGREDAO.sol/OGREDAO.json | 1 + out/OGREDAOFactory.sol/OGREDAOFactory.json | 1 + out/OGREFactory.sol/OGREFactory.json | 1 + out/OGREMarket.sol/OGREMarket.json | 1 + .../OGREMarketFactory.json | 1 + out/OGREProposal.sol/OGREProposal.json | 1 + .../OGREProposalFactory.json | 1 + out/OGRETest.t.sol/OGRETest.json | 1 + .../OGRETokenizedMarket.json | 1 + .../OGRETokenizedTreasury.json | 1 + out/OGRETreasury.sol/OGRETreasury.json | 1 + .../OGRETreasuryFactory.json | 1 + out/Ownable.sol/Ownable.json | 1 + out/Panic.sol/Panic.json | 1 + out/Pausable.sol/Pausable.json | 1 + out/ReentrancyGuard.sol/ReentrancyGuard.json | 1 + out/SafeCast.sol/SafeCast.json | 1 + out/SignedMath.sol/SignedMath.json | 1 + out/StdAssertions.sol/StdAssertions.json | 1 + out/StdChains.sol/StdChains.json | 1 + out/StdCheats.sol/StdCheats.json | 1 + out/StdCheats.sol/StdCheatsSafe.json | 1 + out/StdError.sol/stdError.json | 1 + out/StdInvariant.sol/StdInvariant.json | 1 + out/StdJson.sol/stdJson.json | 1 + out/StdMath.sol/stdMath.json | 1 + out/StdStorage.sol/stdStorage.json | 1 + out/StdStorage.sol/stdStorageSafe.json | 1 + out/StdStyle.sol/StdStyle.json | 1 + out/StdToml.sol/stdToml.json | 1 + out/StdUtils.sol/StdUtils.json | 1 + out/Strings.sol/Strings.json | 1 + out/Structs.sol/Structs.json | 1 + .../StubActionHopper.json | 1 + .../StubERC721Receivable.json | 1 + out/StubOGREFactory.sol/StubOGREFactory.json | 1 + out/Test.sol/Test.json | 1 + out/Vm.sol/Vm.json | 1 + out/Vm.sol/VmSafe.json | 1 + .../8794160e65dfedcb744790f912986909.json | 1 + out/console.sol/console.json | 1 + out/draft-IERC6093.sol/IERC1155Errors.json | 1 + out/draft-IERC6093.sol/IERC20Errors.json | 1 + out/draft-IERC6093.sol/IERC721Errors.json | 1 + out/safeconsole.sol/safeconsole.json | 1 + package-lock.json | 7427 ----------------- package.json | 33 - remappings.txt | 5 + scripts/deployFactories.js | 40 - scripts/populate.js | 177 - {contracts => src}/OGRE20.sol | 12 +- {contracts => src}/OGRE721.sol | 14 +- {contracts => src}/OGREBridge.sol | 14 +- {contracts => src}/OGREDAO.sol | 21 +- {contracts => src}/OGREMarket.sol | 12 +- {contracts => src}/OGREProposal.sol | 9 +- {contracts => src}/OGRETokenizedMarket.sol | 14 +- {contracts => src}/OGRETokenizedTreasury.sol | 14 +- {contracts => src}/OGRETreasury.sol | 12 +- {contracts => src}/abstract/ActionHopper.sol | 2 +- .../abstract/ERC721Receivable.sol | 6 +- {contracts => src}/abstract/OGREFactory.sol | 2 +- .../abstract/stub/StubActionHopper.sol | 2 +- .../abstract/stub/StubERC721Receivable.sol | 2 +- .../abstract/stub/StubOGREFactory.sol | 2 +- .../factories/OGRE20Factory.sol | 2 +- .../factories/OGRE721Factory.sol | 2 +- .../factories/OGREDAOFactory.sol | 2 +- .../factories/OGREMarketFactory.sol | 2 +- .../factories/OGREProposalFactory.sol | 2 +- .../factories/OGRETreasuryFactory.sol | 2 +- .../interfaces/IOGRE20Factory.sol | 2 +- {contracts => src}/interfaces/IOGRE721.sol | 2 +- .../interfaces/IOGRE721Factory.sol | 2 +- {contracts => src}/interfaces/IOGREDAO.sol | 2 +- .../interfaces/IOGREDAOFactory.sol | 2 +- {contracts => src}/interfaces/IOGREMarket.sol | 2 +- .../interfaces/IOGREMarketFactory.sol | 2 +- .../interfaces/IOGREProposal.sol | 2 +- .../interfaces/IOGREProposalFactory.sol | 2 +- .../interfaces/IOGRETreasury.sol | 0 .../interfaces/IOGRETreasuryFactory.sol | 2 +- {contracts => src}/libraries/Constants.sol | 2 +- {contracts => src}/libraries/Enums.sol | 2 +- {contracts => src}/libraries/Structs.sol | 2 +- test/OGRETest.t.sol | 17 + 128 files changed, 244 insertions(+), 7837 deletions(-) create mode 100644 .gitmodules create mode 100644 foundry.toml delete mode 100644 hardhat.config.js create mode 100644 out/AccessControl.sol/AccessControl.json create mode 100644 out/ActionHopper.sol/ActionHopper.json create mode 100644 out/Base.sol/CommonBase.json create mode 100644 out/Base.sol/ScriptBase.json create mode 100644 out/Base.sol/TestBase.json create mode 100644 out/Constants.sol/Constants.json create mode 100644 out/Context.sol/Context.json create mode 100644 out/ERC165.sol/ERC165.json create mode 100644 out/ERC20.sol/ERC20.json create mode 100644 out/ERC721.sol/ERC721.json create mode 100644 out/ERC721Receivable.sol/ERC721Receivable.json create mode 100644 out/ERC721Utils.sol/ERC721Utils.json create mode 100644 out/Enums.sol/Enums.json create mode 100644 out/IAccessControl.sol/IAccessControl.json create mode 100644 out/IERC165.sol/IERC165.json create mode 100644 out/IERC20.sol/IERC20.json create mode 100644 out/IERC20Metadata.sol/IERC20Metadata.json create mode 100644 out/IERC721.sol/IERC721.json create mode 100644 out/IERC721Metadata.sol/IERC721Metadata.json create mode 100644 out/IERC721Receiver.sol/IERC721Receiver.json create mode 100644 out/IMulticall3.sol/IMulticall3.json create mode 100644 out/IOGRE20Factory.sol/IOGRE20Factory.json create mode 100644 out/IOGRE721.sol/IOGRE721.json create mode 100644 out/IOGRE721Factory.sol/IOGRE721Factory.json create mode 100644 out/IOGREDAO.sol/IOGREDAO.json create mode 100644 out/IOGREDAOFactory.sol/IOGREDAOFactory.json create mode 100644 out/IOGREMarket.sol/IOGREMarket.json create mode 100644 out/IOGREMarketFactory.sol/IOGREMarketFactory.json create mode 100644 out/IOGREProposal.sol/IOGREProposal.json create mode 100644 out/IOGREProposalFactory.sol/IOGREProposalFactory.json create mode 100644 out/IOGRETreasury.sol/IOGRETreasury.json create mode 100644 out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json create mode 100644 out/Math.sol/Math.json create mode 100644 out/OGRE20.sol/OGRE20.json create mode 100644 out/OGRE20Factory.sol/OGRE20Factory.json create mode 100644 out/OGRE721.sol/OGRE721.json create mode 100644 out/OGRE721Factory.sol/OGRE721Factory.json create mode 100644 out/OGREBridge.sol/OGREBridge.json create mode 100644 out/OGREDAO.sol/OGREDAO.json create mode 100644 out/OGREDAOFactory.sol/OGREDAOFactory.json create mode 100644 out/OGREFactory.sol/OGREFactory.json create mode 100644 out/OGREMarket.sol/OGREMarket.json create mode 100644 out/OGREMarketFactory.sol/OGREMarketFactory.json create mode 100644 out/OGREProposal.sol/OGREProposal.json create mode 100644 out/OGREProposalFactory.sol/OGREProposalFactory.json create mode 100644 out/OGRETest.t.sol/OGRETest.json create mode 100644 out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json create mode 100644 out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json create mode 100644 out/OGRETreasury.sol/OGRETreasury.json create mode 100644 out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json create mode 100644 out/Ownable.sol/Ownable.json create mode 100644 out/Panic.sol/Panic.json create mode 100644 out/Pausable.sol/Pausable.json create mode 100644 out/ReentrancyGuard.sol/ReentrancyGuard.json create mode 100644 out/SafeCast.sol/SafeCast.json create mode 100644 out/SignedMath.sol/SignedMath.json create mode 100644 out/StdAssertions.sol/StdAssertions.json create mode 100644 out/StdChains.sol/StdChains.json create mode 100644 out/StdCheats.sol/StdCheats.json create mode 100644 out/StdCheats.sol/StdCheatsSafe.json create mode 100644 out/StdError.sol/stdError.json create mode 100644 out/StdInvariant.sol/StdInvariant.json create mode 100644 out/StdJson.sol/stdJson.json create mode 100644 out/StdMath.sol/stdMath.json create mode 100644 out/StdStorage.sol/stdStorage.json create mode 100644 out/StdStorage.sol/stdStorageSafe.json create mode 100644 out/StdStyle.sol/StdStyle.json create mode 100644 out/StdToml.sol/stdToml.json create mode 100644 out/StdUtils.sol/StdUtils.json create mode 100644 out/Strings.sol/Strings.json create mode 100644 out/Structs.sol/Structs.json create mode 100644 out/StubActionHopper.sol/StubActionHopper.json create mode 100644 out/StubERC721Receivable.sol/StubERC721Receivable.json create mode 100644 out/StubOGREFactory.sol/StubOGREFactory.json create mode 100644 out/Test.sol/Test.json create mode 100644 out/Vm.sol/Vm.json create mode 100644 out/Vm.sol/VmSafe.json create mode 100644 out/build-info/8794160e65dfedcb744790f912986909.json create mode 100644 out/console.sol/console.json create mode 100644 out/draft-IERC6093.sol/IERC1155Errors.json create mode 100644 out/draft-IERC6093.sol/IERC20Errors.json create mode 100644 out/draft-IERC6093.sol/IERC721Errors.json create mode 100644 out/safeconsole.sol/safeconsole.json delete mode 100644 package-lock.json delete mode 100644 package.json create mode 100644 remappings.txt delete mode 100644 scripts/deployFactories.js delete mode 100644 scripts/populate.js rename {contracts => src}/OGRE20.sol (63%) rename {contracts => src}/OGRE721.sol (57%) rename {contracts => src}/OGREBridge.sol (86%) rename {contracts => src}/OGREDAO.sol (96%) rename {contracts => src}/OGREMarket.sol (95%) rename {contracts => src}/OGREProposal.sol (97%) rename {contracts => src}/OGRETokenizedMarket.sol (97%) rename {contracts => src}/OGRETokenizedTreasury.sol (91%) rename {contracts => src}/OGRETreasury.sol (75%) rename {contracts => src}/abstract/ActionHopper.sol (99%) rename {contracts => src}/abstract/ERC721Receivable.sol (90%) rename {contracts => src}/abstract/OGREFactory.sol (96%) rename {contracts => src}/abstract/stub/StubActionHopper.sol (96%) rename {contracts => src}/abstract/stub/StubERC721Receivable.sol (94%) rename {contracts => src}/abstract/stub/StubOGREFactory.sol (93%) rename {contracts => src}/factories/OGRE20Factory.sol (95%) rename {contracts => src}/factories/OGRE721Factory.sol (95%) rename {contracts => src}/factories/OGREDAOFactory.sol (96%) rename {contracts => src}/factories/OGREMarketFactory.sol (96%) rename {contracts => src}/factories/OGREProposalFactory.sol (96%) rename {contracts => src}/factories/OGRETreasuryFactory.sol (96%) rename {contracts => src}/interfaces/IOGRE20Factory.sol (90%) rename {contracts => src}/interfaces/IOGRE721.sol (89%) rename {contracts => src}/interfaces/IOGRE721Factory.sol (90%) rename {contracts => src}/interfaces/IOGREDAO.sol (98%) rename {contracts => src}/interfaces/IOGREDAOFactory.sol (92%) rename {contracts => src}/interfaces/IOGREMarket.sol (96%) rename {contracts => src}/interfaces/IOGREMarketFactory.sol (91%) rename {contracts => src}/interfaces/IOGREProposal.sol (97%) rename {contracts => src}/interfaces/IOGREProposalFactory.sol (91%) rename {contracts => src}/interfaces/IOGRETreasury.sol (100%) rename {contracts => src}/interfaces/IOGRETreasuryFactory.sol (89%) rename {contracts => src}/libraries/Constants.sol (97%) rename {contracts => src}/libraries/Enums.sol (97%) rename {contracts => src}/libraries/Structs.sol (98%) create mode 100644 test/OGRETest.t.sol diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..140ea9e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/openzeppelin-contracts"] + path = lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts diff --git a/README.md b/README.md index e236dcc..7f4e8b1 100644 --- a/README.md +++ b/README.md @@ -18,38 +18,49 @@ A smart contract suite for actionable governance within NFT communities. ## Prerequisites -* npm -* hardhat +* Foundry (forge, cast, anvil) +* Git -`npm install` +## Installation -## Compile - -`npx hardhat compile` - -## Build Go Bindings +1. Install Foundry: +```bash +curl -L https://foundry.paradigm.xyz | bash +foundryup +``` -solc --abi contracts/OGREDAO.sol -solc --bin contracts/OGREDAO.sol -abigen --bin=Store_sol_Store.bin --abi=Store_sol_Store.abi --pkg=dao --out=go/OGREDAO.go +2. Clone the repository: +```bash +git clone https://github.com/craigbranscom/OGRE.git +cd OGRE +``` -`docker run -v ~/GitHub/OGRE/:/sources ethereum/solc:0.8.17 -o sources/go --abi --bin /sources/contracts/OGREDAO.sol` +3. Install dependencies: +```bash +forge install +``` -`abigen --abi=./output/OGREDAO.abi --pkg=dao --out=go/OGREDAO.go` +## Compile -## Run Hardhat Tasks and Scripts +```bash +forge build +``` -`npx hardhat balance --account 0x...` +## Test -`npx hardhat run --network localhost scripts/populate.js` +```bash +forge test +``` ## Deploy Contract Factories The `factories` folder contains simple factory contracts that deploy copies of their respective contracts. The `OGREDAOFactory` produces `OGREDAOs`, `OGRE721Factory` produces `OGRE721s`, etc. -Run `npx hardhat run scripts/deployFactories.js` to deploy all factory contracts. This only needs to be done once per network, per factory version. New factory contracts should be deployed that produce updated versions of their respective contracts. +To deploy a factory contract: -For example, if the `OGREProposal` contract is updated from v1.0 to v1.1 then a new `OGREProposalFactory` contract should also be deployed that will produce the new v1.1 proposals. Of course older factories will always remain on chain, so DAOs can choose which factory will produce a given proposal. +```bash +forge create src/factories/OGREDAOFactory.sol:OGREDAOFactory --rpc-url --private-key +``` ## Create a DAO @@ -71,8 +82,6 @@ DAO members can draft new proposals for the DAO, which can include an array of A ### Configure Proposal - - # Contracts Breakdown ## Base Contracts diff --git a/foundry.toml b/foundry.toml new file mode 100644 index 0000000..1069eec --- /dev/null +++ b/foundry.toml @@ -0,0 +1,20 @@ +[profile.default] +src = 'src' +out = 'out' +libs = ['lib'] +solc = '0.8.20' +optimizer = true +optimizer_runs = 200 + +[profile.ci] +src = 'src' +out = 'out' +libs = ['lib'] +solc = '0.8.20' +optimizer = true +optimizer_runs = 200 +test = 'test' +test_pattern = 'test/*.t.sol' +test_fuzz_runs = 100 +test_verbosity = 1 +test_fail_fast = true \ No newline at end of file diff --git a/hardhat.config.js b/hardhat.config.js deleted file mode 100644 index 0c54e4d..0000000 --- a/hardhat.config.js +++ /dev/null @@ -1,51 +0,0 @@ -const { task } = require("hardhat/config"); - -require("@nomicfoundation/hardhat-chai-matchers"); -require("@nomiclabs/hardhat-ethers"); - -// This is a sample Hardhat task. To learn how to create your own go to -// https://hardhat.org/guides/create-task.html -task("accounts", "Prints the list of accounts", async (taskArgs, hre) => { - const accounts = await hre.ethers.getSigners(); - - for (const account of accounts) { - console.log(account.address); - } -}); - -task("balance", "Prints an the balance of an account") - .addParam("account", "The account's address") - .setAction(async (taskArgs) => { - const balance = await ethers.provider.getBalance(taskArgs.account); - console.log(ethers.utils.formatEther(balance), "ETH"); -}); - -task("fund", "Transfers 1 wei to recipient account", async (taskArgs, hre) => { - const accounts = await hre.ethers.getSigners(); - - const trx = { - to: accounts[1].address, - value: ethers.utils.parseEther('1'), - }; - - const trxHash = await accounts[0].sendTransaction(trx); - console.log(trxHash); -}); - -// You need to export an object to set up your config -// Go to https://hardhat.org/config/ to learn more - -/** - * @type import('hardhat/config').HardhatUserConfig - */ -module.exports = { - solidity: "0.8.17", - networks: { - hardhat: { - mining: { - auto: false, - interval: [3000, 6000] - } - } - } -}; diff --git a/out/AccessControl.sol/AccessControl.json b/out/AccessControl.sol/AccessControl.json new file mode 100644 index 0000000..80971f1 --- /dev/null +++ b/out/AccessControl.sol/AccessControl.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":"AccessControl"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/ActionHopper.sol/ActionHopper.json b/out/ActionHopper.sol/ActionHopper.json new file mode 100644 index 0000000..3456bac --- /dev/null +++ b/out/ActionHopper.sol/ActionHopper.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delay()":"6a42b8f8","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","loadedActions(bytes32)":"6e8c7ab9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}}},\"kind\":\"dev\",\"methods\":{\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}}},\"title\":\"Action Hopper Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/ActionHopper.sol\":\"ActionHopper\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/ActionHopper.sol":"ActionHopper"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"}},"version":1},"id":49} \ No newline at end of file diff --git a/out/Base.sol/CommonBase.json b/out/Base.sol/CommonBase.json new file mode 100644 index 0000000..9f48f23 --- /dev/null +++ b/out/Base.sol/CommonBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Base.sol/ScriptBase.json b/out/Base.sol/ScriptBase.json new file mode 100644 index 0000000..2f7f598 --- /dev/null +++ b/out/Base.sol/ScriptBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Base.sol/TestBase.json b/out/Base.sol/TestBase.json new file mode 100644 index 0000000..bba0131 --- /dev/null +++ b/out/Base.sol/TestBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Constants.sol/Constants.json b/out/Constants.sol/Constants.json new file mode 100644 index 0000000..b5b2ccf --- /dev/null +++ b/out/Constants.sol/Constants.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DAO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DAO_INVITE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MARKET_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPTIONS_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROPOSAL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101a1610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220ac57617df80e3f958a5418c826cd627751bd0be06897ac41ee9b176695036e6164736f6c63430008140033","sourceMap":"65:846:72:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:846:72;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220ac57617df80e3f958a5418c826cd627751bd0be06897ac41ee9b176695036e6164736f6c63430008140033","sourceMap":"65:846:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;110:58;;146:22;110:58;;;;;168:25:76;;;156:2;141:18;110:58:72;;;;;;;500:66;;540:26;500:66;;601:68;;642:27;601:68;;770;;811:27;770:68;;243:60;;280:23;243:60;;402:64;;441:25;402:64;","linkReferences":{}},"methodIdentifiers":{"DAO_ADMIN()":"468c8a61","DAO_INVITE()":"890e4b49","MARKET_ADMIN()":"a314fb16","OPTIONS_ADMIN()":"5b1402b7","PROPOSAL_ADMIN()":"5e90ca16","TREASURY_ADMIN()":"769ac726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DAO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAO_INVITE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPTIONS_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_INVITE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MARKET_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPTIONS_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSAL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"}},"version":1},"id":72} \ No newline at end of file diff --git a/out/Context.sol/Context.json b/out/Context.sol/Context.json new file mode 100644 index 0000000..825616e --- /dev/null +++ b/out/Context.sol/Context.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/ERC165.sol/ERC165.json b/out/ERC165.sol/ERC165.json new file mode 100644 index 0000000..6fbc304 --- /dev/null +++ b/out/ERC165.sol/ERC165.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json new file mode 100644 index 0000000..a04f29f --- /dev/null +++ b/out/ERC20.sol/ERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. Both values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. Both values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/ERC721.sol/ERC721.json b/out/ERC721.sol/ERC721.json new file mode 100644 index 0000000..8ef5d34 --- /dev/null +++ b/out/ERC721.sol/ERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":"ERC721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":7} \ No newline at end of file diff --git a/out/ERC721Receivable.sol/ERC721Receivable.json b/out/ERC721Receivable.sol/ERC721Receivable.json new file mode 100644 index 0000000..3349503 --- /dev/null +++ b/out/ERC721Receivable.sol/ERC721Receivable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"allows children to receive and send erc721 tokens\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/ERC721Receivable.sol\":\"ERC721Receivable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/ERC721Receivable.sol":"ERC721Receivable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"}},"version":1},"id":50} \ No newline at end of file diff --git a/out/ERC721Utils.sol/ERC721Utils.json b/out/ERC721Utils.sol/ERC721Utils.json new file mode 100644 index 0000000..dee3c05 --- /dev/null +++ b/out/ERC721Utils.sol/ERC721Utils.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e90c3fb05d270d81ca1d001765609aa68e5b9753df2f1d0dd128ac542224fdbd64736f6c63430008140033","sourceMap":"431:1488:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;431:1488:11;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e90c3fb05d270d81ca1d001765609aa68e5b9753df2f1d0dd128ac542224fdbd64736f6c63430008140033","sourceMap":"431:1488:11:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-721 utility functions. See https://eips.ethereum.org/EIPS/eip-721[ERC-721]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":\"ERC721Utils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":"ERC721Utils"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file diff --git a/out/Enums.sol/Enums.json b/out/Enums.sol/Enums.json new file mode 100644 index 0000000..c320122 --- /dev/null +++ b/out/Enums.sol/Enums.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b2ac4ce08328a4962a708c88bfc69ecefd9b0040e77e0b2bdf998a578d856bcb64736f6c63430008140033","sourceMap":"65:927:73:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:927:73;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b2ac4ce08328a4962a708c88bfc69ecefd9b0040e77e0b2bdf998a578d856bcb64736f6c63430008140033","sourceMap":"65:927:73:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Enums.sol\":\"Enums\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Enums.sol":"Enums"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"}},"version":1},"id":73} \ No newline at end of file diff --git a/out/IAccessControl.sol/IAccessControl.json b/out/IAccessControl.sol/IAccessControl.json new file mode 100644 index 0000000..80bb621 --- /dev/null +++ b/out/IAccessControl.sol/IAccessControl.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":"IAccessControl"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/IERC165.sol/IERC165.json b/out/IERC165.sol/IERC165.json new file mode 100644 index 0000000..4dce552 --- /dev/null +++ b/out/IERC165.sol/IERC165.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20.json b/out/IERC20.sol/IERC20.json new file mode 100644 index 0000000..f7758ba --- /dev/null +++ b/out/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/IERC20Metadata.sol/IERC20Metadata.json b/out/IERC20Metadata.sol/IERC20Metadata.json new file mode 100644 index 0000000..f3e7959 --- /dev/null +++ b/out/IERC20Metadata.sol/IERC20Metadata.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721.json b/out/IERC721.sol/IERC721.json new file mode 100644 index 0000000..7130e5c --- /dev/null +++ b/out/IERC721.sol/IERC721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/IERC721Metadata.sol/IERC721Metadata.json b/out/IERC721Metadata.sol/IERC721Metadata.json new file mode 100644 index 0000000..7a5f509 --- /dev/null +++ b/out/IERC721Metadata.sol/IERC721Metadata.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/out/IERC721Receiver.sol/IERC721Receiver.json b/out/IERC721Receiver.sol/IERC721Receiver.json new file mode 100644 index 0000000..30e7c96 --- /dev/null +++ b/out/IERC721Receiver.sol/IERC721Receiver.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC-721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC-721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/IMulticall3.sol/IMulticall3.json b/out/IMulticall3.sol/IMulticall3.json new file mode 100644 index 0000000..173fc34 --- /dev/null +++ b/out/IMulticall3.sol/IMulticall3.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/out/IOGRE20Factory.sol/IOGRE20Factory.json b/out/IOGRE20Factory.sol/IOGRE20Factory.json new file mode 100644 index 0000000..d539951 --- /dev/null +++ b/out/IOGRE20Factory.sol/IOGRE20Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGRE20","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRE20(string,string,address)":"77e070cc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE 20 Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE20Factory.sol\":\"IOGRE20Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE20Factory.sol\":{\"keccak256\":\"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c\",\"dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE20","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE20Factory.sol":"IOGRE20Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE20Factory.sol":{"keccak256":"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c","urls":["bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c","dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB"],"license":"UNLICENSED"}},"version":1},"id":61} \ No newline at end of file diff --git a/out/IOGRE721.sol/IOGRE721.json b/out/IOGRE721.sol/IOGRE721.json new file mode 100644 index 0000000..6aad51f --- /dev/null +++ b/out/IOGRE721.sol/IOGRE721.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(uint256)":"42966c68","mint(address,uint256)":"40c10f19"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE 721 interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE721.sol\":\"IOGRE721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE721.sol":"IOGRE721"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"}},"version":1},"id":62} \ No newline at end of file diff --git a/out/IOGRE721Factory.sol/IOGRE721Factory.json b/out/IOGRE721Factory.sol/IOGRE721Factory.json new file mode 100644 index 0000000..2d29ed8 --- /dev/null +++ b/out/IOGRE721Factory.sol/IOGRE721Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGRE721","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRE721(string,string,address)":"ef649826"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE NFT Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE721Factory.sol\":\"IOGRE721Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE721","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE721Factory.sol":"IOGRE721Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/IOGREDAO.sol/IOGREDAO.json b/out/IOGREDAO.sol/IOGREDAO.json new file mode 100644 index 0000000..e384583 --- /dev/null +++ b/out/IOGREDAO.sol/IOGREDAO.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoMetadata()":"0787e15c","daoName()":"48976936","getMemberStatus(uint256)":"7d0d719b","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAO.sol\":\"IOGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAO.sol":"IOGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file diff --git a/out/IOGREDAOFactory.sol/IOGREDAOFactory.json b/out/IOGREDAOFactory.sol/IOGREDAOFactory.json new file mode 100644 index 0000000..66834ef --- /dev/null +++ b/out/IOGREDAOFactory.sol/IOGREDAOFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"prpoopsalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"prpoopsalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAOFactory.sol\":\"IOGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREDAOFactory.sol\":{\"keccak256\":\"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e\",\"dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"prpoopsalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAOFactory.sol":"IOGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAOFactory.sol":{"keccak256":"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31","urls":["bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e","dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/IOGREMarket.sol/IOGREMarket.json b/out/IOGREMarket.sol/IOGREMarket.json new file mode 100644 index 0000000..622069e --- /dev/null +++ b/out/IOGREMarket.sol/IOGREMarket.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowedContracts","inputs":[{"name":"contractAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","orderExists(bytes32)":"2cb77e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarket interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarket.sol\":\"IOGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREMarket.sol\":{\"keccak256\":\"0x55dbb995cb3a547ca01e24decf8e5526bcc866cc7f0ac01dc5f7561bc2e0b9a6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3c121eef1370d4ebcb81b20eb950b99cd4a3671f258fcefc1778ae8b885725b\",\"dweb:/ipfs/QmVmZVSzR8akhgUwTXWgTYNFe8MF6TrrrodVZimVDCiFf1\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarket.sol":"IOGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarket.sol":{"keccak256":"0x55dbb995cb3a547ca01e24decf8e5526bcc866cc7f0ac01dc5f7561bc2e0b9a6","urls":["bzz-raw://c3c121eef1370d4ebcb81b20eb950b99cd4a3671f258fcefc1778ae8b885725b","dweb:/ipfs/QmVmZVSzR8akhgUwTXWgTYNFe8MF6TrrrodVZimVDCiFf1"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"}},"version":1},"id":66} \ No newline at end of file diff --git a/out/IOGREMarketFactory.sol/IOGREMarketFactory.json b/out/IOGREMarketFactory.sol/IOGREMarketFactory.json new file mode 100644 index 0000000..56062fe --- /dev/null +++ b/out/IOGREMarketFactory.sol/IOGREMarketFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarketFactory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarketFactory.sol\":\"IOGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREMarketFactory.sol\":{\"keccak256\":\"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35\",\"dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarketFactory.sol":"IOGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarketFactory.sol":{"keccak256":"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0","urls":["bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35","dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr"],"license":"UNLICENSED"}},"version":1},"id":67} \ No newline at end of file diff --git a/out/IOGREProposal.sol/IOGREProposal.json b/out/IOGREProposal.sol/IOGREProposal.json new file mode 100644 index 0000000..b47c8f1 --- /dev/null +++ b/out/IOGREProposal.sol/IOGREProposal.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteTotals","inputs":[{"name":"vote","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","proposalTitle()":"e5045752","setActionReady(uint256,uint256)":"280b0c87","startTime()":"78e97925","status()":"200d2ed2","updateStatus(uint8)":"0b3af7f9","voteTotals(uint256)":"814a1d8e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE proposal interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposal.sol\":\"IOGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[{"internalType":"uint256","name":"vote","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposal.sol":"IOGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":68} \ No newline at end of file diff --git a/out/IOGREProposalFactory.sol/IOGREProposalFactory.json b/out/IOGREProposalFactory.sol/IOGREProposalFactory.json new file mode 100644 index 0000000..11c89e7 --- /dev/null +++ b/out/IOGREProposalFactory.sol/IOGREProposalFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Proposal Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposalFactory.sol\":\"IOGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposalFactory.sol":"IOGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"}},"version":1},"id":69} \ No newline at end of file diff --git a/out/IOGRETreasury.sol/IOGRETreasury.json b/out/IOGRETreasury.sol/IOGRETreasury.json new file mode 100644 index 0000000..f920d6f --- /dev/null +++ b/out/IOGRETreasury.sol/IOGRETreasury.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoAddress()":"2131c68c","sendERC721(address,address,uint256)":"b72ac8ea"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasury.sol\":\"IOGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4\",\"dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasury.sol":"IOGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasury.sol":{"keccak256":"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104","urls":["bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4","dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C"],"license":"UNLICENSED"}},"version":1},"id":70} \ No newline at end of file diff --git a/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json b/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json new file mode 100644 index 0000000..8777c70 --- /dev/null +++ b/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasuryFactory.sol\":\"IOGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRETreasuryFactory.sol\":{\"keccak256\":\"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732\",\"dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasuryFactory.sol":"IOGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasuryFactory.sol":{"keccak256":"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6","urls":["bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732","dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX"],"license":"UNLICENSED"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/Math.sol/Math.json b/out/Math.sol/Math.json new file mode 100644 index 0000000..0a86be7 --- /dev/null +++ b/out/Math.sol/Math.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122092dc486e96a3349b7f6fd03dcf78cbf3a15f9c7e92273b68316490dd71f337dc64736f6c63430008140033","sourceMap":"281:31863:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:31863:19;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122092dc486e96a3349b7f6fd03dcf78cbf3a15f9c7e92273b68316490dd71f337dc64736f6c63430008140033","sourceMap":"281:31863:19:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/OGRE20.sol/OGRE20.json b/out/OGRE20.sol/OGRE20.json new file mode 100644 index 0000000..a28e897 --- /dev/null +++ b/out/OGRE20.sol/OGRE20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033","sourceMap":"295:499:40:-:0;;;350:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;444:5;451:7;430:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1871:51:76;1844:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1648:5:4;:13;1656:5;1648;:13;:::i;:::-;-1:-1:-1;1671:7:4;:17;1681:7;1671;:17;:::i;:::-;;1582:113;;350:112:40;;;295:499;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:76;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:76;-1:-1:-1;;;;;;1640:31:76;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1933:380::-;2012:1;2008:12;;;;2055;;;2076:61;;2130:4;2122:6;2118:17;2108:27;;2076:61;2183:2;2175:6;2172:14;2152:18;2149:38;2146:161;;2229:10;2224:3;2220:20;2217:1;2210:31;2264:4;2261:1;2254:15;2292:4;2289:1;2282:15;2146:161;;1933:380;;;:::o;2444:545::-;2546:2;2541:3;2538:11;2535:448;;;2582:1;2607:5;2603:2;2596:17;2652:4;2648:2;2638:19;2722:2;2710:10;2706:19;2703:1;2699:27;2693:4;2689:38;2758:4;2746:10;2743:20;2740:47;;;-1:-1:-1;2781:4:76;2740:47;2836:2;2831:3;2827:12;2824:1;2820:20;2814:4;2810:31;2800:41;;2891:82;2909:2;2902:5;2899:13;2891:82;;;2954:17;;;2935:1;2924:13;2891:82;;;2895:3;;;2535:448;2444:545;;;:::o;3165:1352::-;3285:10;;-1:-1:-1;;;;;3307:30:76;;3304:56;;;3340:18;;:::i;:::-;3369:97;3459:6;3419:38;3451:4;3445:11;3419:38;:::i;:::-;3413:4;3369:97;:::i;:::-;3521:4;;3585:2;3574:14;;3602:1;3597:663;;;;4304:1;4321:6;4318:89;;;-1:-1:-1;4373:19:76;;;4367:26;4318:89;-1:-1:-1;;3122:1:76;3118:11;;;3114:24;3110:29;3100:40;3146:1;3142:11;;;3097:57;4420:81;;3567:944;;3597:663;2391:1;2384:14;;;2428:4;2415:18;;-1:-1:-1;;3633:20:76;;;3751:236;3765:7;3762:1;3759:14;3751:236;;;3854:19;;;3848:26;3833:42;;3946:27;;;;3914:1;3902:14;;;;3781:19;;3751:236;;;3755:3;4015:6;4006:7;4003:19;4000:201;;;4076:19;;;4070:26;-1:-1:-1;;4159:1:76;4155:14;;;4171:3;4151:24;4147:37;4143:42;4128:58;4113:74;;4000:201;-1:-1:-1;;;;;4247:1:76;4231:14;;;4227:22;4214:36;;-1:-1:-1;3165:1352:76:o;:::-;295:499:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033","sourceMap":"295:499:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3979:186;;;;;;;;;;-1:-1:-1;3979:186:4;;;;;:::i;:::-;;:::i;:::-;;;1169:14:76;;1162:22;1144:41;;1132:2;1117:18;3979:186:4;1004:187:76;2830:97:4;;;;;;;;;;-1:-1:-1;2908:12:4;;2830:97;;;1342:25:76;;;1330:2;1315:18;2830:97:4;1196:177:76;4757:244:4;;;;;;;;;;-1:-1:-1;4757:244:4;;;;;:::i;:::-;;:::i;2688:82::-;;;;;;;;;;-1:-1:-1;2688:82:4;;2761:2;1853:36:76;;1841:2;1826:18;2688:82:4;1711:184:76;514:115:40;;;;;;:::i;:::-;;:::i;:::-;;1726:84:14;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2985:116:4;;;;;;;;;;-1:-1:-1;2985:116:4;;;;;:::i;:::-;-1:-1:-1;;;;;3076:18:4;3050:7;3076:18;;;:9;:18;;;;;;;2985:116;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:2;;;2237:51:76;;2225:2;2210:18;1638:85:2;2091:203:76;1962:93:4;;;;;;;;;;;;;:::i;681:111:40:-;;;;;;;;;;-1:-1:-1;681:111:40;;;;;:::i;:::-;;:::i;3296:178:4:-;;;;;;;;;;-1:-1:-1;3296:178:4;;;;;:::i;:::-;;:::i;3532:140::-;;;;;;;;;;-1:-1:-1;3532:140:4;;;;;:::i;:::-;-1:-1:-1;;;;;3638:18:4;;;3612:7;3638:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3532:140;2543:215:2;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;1760:89:4:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3979:186::-;4052:4;735:10:12;4106:31:4;735:10:12;4122:7:4;4131:5;4106:8;:31::i;:::-;4154:4;4147:11;;;3979:186;;;;;:::o;4757:244::-;4844:4;735:10:12;4900:37:4;4916:4;735:10:12;4931:5:4;4900:15;:37::i;:::-;4947:26;4957:4;4963:2;4967:5;4947:9;:26::i;:::-;-1:-1:-1;4990:4:4;;4757:244;-1:-1:-1;;;;4757:244:4:o;514:115:40:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;605:17:40::2;611:2;615:6;605:5;:17::i;:::-;514:115:::0;;:::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1962:93:4:-;2009:13;2041:7;2034:14;;;;;:::i;681:111:40:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;766::40::2;772:4;778:6;766:5;:19::i;3296:178:4:-:0;3365:4;735:10:12;3419:27:4;735:10:12;3436:2:4;3440:5;3419:9;:27::i;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;2237:51:76::0;2210:18;;2672:31:2::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;8707:128:4:-;8791:37;8800:5;8807:7;8816:5;8823:4;8791:8;:37::i;:::-;8707:128;;;:::o;10396:476::-;-1:-1:-1;;;;;3638:18:4;;;10495:24;3638:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10561:36:4;;10557:309;;;10636:5;10617:16;:24;10613:130;;;10668:60;;-1:-1:-1;;;10668:60:4;;-1:-1:-1;;;;;3169:32:76;;10668:60:4;;;3151:51:76;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;10668:60:4;2949:345:76;10613:130:4;10784:57;10793:5;10800:7;10828:5;10809:16;:24;10835:5;10784:8;:57::i;:::-;10485:387;10396:476;;;:::o;5374:300::-;-1:-1:-1;;;;;5457:18:4;;5453:86;;5498:30;;-1:-1:-1;;;5498:30:4;;5525:1;5498:30;;;2237:51:76;2210:18;;5498:30:4;2091:203:76;5453:86:4;-1:-1:-1;;;;;5552:16:4;;5548:86;;5591:32;;-1:-1:-1;;;5591:32:4;;5620:1;5591:32;;;2237:51:76;2210:18;;5591:32:4;2091:203:76;5548:86:4;5643:24;5651:4;5657:2;5661:5;5643:7;:24::i;1796:162:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;2237:51:76;2210:18;;1901:40:2;2091:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;7439:208:4;-1:-1:-1;;;;;7509:21:4;;7505:91;;7553:32;;-1:-1:-1;;;7553:32:4;;7582:1;7553:32;;;2237:51:76;2210:18;;7553:32:4;2091:203:76;7505:91:4;7605:35;7621:1;7625:7;7634:5;7605:7;:35::i;2912:187:2:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;7965:206:4:-;-1:-1:-1;;;;;8035:21:4;;8031:89;;8079:30;;-1:-1:-1;;;8079:30:4;;8106:1;8079:30;;;2237:51:76;2210:18;;8079:30:4;2091:203:76;8031:89:4;8129:35;8137:7;8154:1;8158:5;8129:7;:35::i;9682:432::-;-1:-1:-1;;;;;9794:19:4;;9790:89;;9836:32;;-1:-1:-1;;;9836:32:4;;9865:1;9836:32;;;2237:51:76;2210:18;;9836:32:4;2091:203:76;9790:89:4;-1:-1:-1;;;;;9892:21:4;;9888:90;;9936:31;;-1:-1:-1;;;9936:31:4;;9964:1;9936:31;;;2237:51:76;2210:18;;9936:31:4;2091:203:76;9888:90:4;-1:-1:-1;;;;;9987:18:4;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10032:76;;;;10082:7;-1:-1:-1;;;;;10066:31:4;10075:5;-1:-1:-1;;;;;10066:31:4;;10091:5;10066:31;;;;1342:25:76;;1330:2;1315:18;;1196:177;10066:31:4;;;;;;;;9682:432;;;;:::o;5989:1107::-;-1:-1:-1;;;;;6078:18:4;;6074:540;;6230:5;6214:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6074:540:4;;-1:-1:-1;6074:540:4;;-1:-1:-1;;;;;6288:15:4;;6266:19;6288:15;;;:9;:15;;;;;;6321:19;;;6317:115;;;6367:50;;-1:-1:-1;;;6367:50:4;;-1:-1:-1;;;;;3169:32:76;;6367:50:4;;;3151:51:76;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;6367:50:4;2949:345:76;6317:115:4;-1:-1:-1;;;;;6552:15:4;;;;;;:9;:15;;;;;6570:19;;;;6552:37;;6074:540;-1:-1:-1;;;;;6628:16:4;;6624:425;;6791:12;:21;;;;;;;6624:425;;;-1:-1:-1;;;;;7002:13:4;;;;;;:9;:13;;;;;:22;;;;;;6624:425;7079:2;-1:-1:-1;;;;;7064:25:4;7073:4;-1:-1:-1;;;;;7064:25:4;;7083:5;7064:25;;;;1342::76;;1330:2;1315:18;;1196:177;7064:25:4;;;;;;;;5989:1107;;;:::o;14:548:76:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:76;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:76:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:76:o;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;3299:222::-;3364:9;;;3385:10;;;3382:133;;;3437:10;3432:3;3428:20;3425:1;3418:31;3472:4;3469:1;3462:15;3500:4;3497:1;3490:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"details\":\"burn token amount\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"mint(address,uint256)\":{\"details\":\"mint token amount\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine ERC20 Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRE20.sol\":\"OGRE20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"src/OGRE20.sol\":{\"keccak256\":\"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51\",\"dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(address,uint256)":{"details":"burn token amount"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"mint(address,uint256)":{"details":"mint token amount"},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRE20.sol":"OGRE20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"src/OGRE20.sol":{"keccak256":"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98","urls":["bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51","dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/out/OGRE20Factory.sol/OGRE20Factory.json b/out/OGRE20Factory.sol/OGRE20Factory.json new file mode 100644 index 0000000..7d3a684 --- /dev/null +++ b/out/OGRE20Factory.sol/OGRE20Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRE20","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506110a68061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806377e070cc14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b610d87806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033a2646970667358221220a962b5f060294c108ce51eea71fbc38808159c25d621ba60837b3f892e04283e64736f6c63430008140033","sourceMap":"171:391:55:-:0;;;232:16;;;;;;;;;;171:391;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806377e070cc14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b610d87806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033a2646970667358221220a962b5f060294c108ce51eea71fbc38808159c25d621ba60837b3f892e04283e64736f6c63430008140033","sourceMap":"171:391:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;254:306:55;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1938:32:76;;;1920:51;;1908:2;1893:18;254:306:55;1774:203:76;254:306:55;350:7;369:13;396:4;402:6;410:5;385:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;369:47;;445:1;426:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;461:60:55;;;-1:-1:-1;;;;;3380:15:76;;3362:34;;503:4:55;3427:2:76;3412:18;;3405:43;510:10:55;3464:18:76;;;3457:43;461:60:55;;;;;;;3312:2:76;461:60:55;;;546:6;254:306;-1:-1:-1;;;;254:306:55:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:717::-;1149:6;1157;1165;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1274:9;1261:23;1303:18;1344:2;1336:6;1333:14;1330:34;;;1360:1;1357;1350:12;1330:34;1383:50;1425:7;1416:6;1405:9;1401:22;1383:50;:::i;:::-;1373:60;;1486:2;1475:9;1471:18;1458:32;1442:48;;1515:2;1505:8;1502:16;1499:36;;;1531:1;1528;1521:12;1499:36;;1554:52;1598:7;1587:8;1576:9;1572:24;1554:52;:::i;:::-;1544:62;-1:-1:-1;;1656:2:76;1641:18;;1628:32;-1:-1:-1;;;;;1689:31:76;;1679:42;;1669:70;;1735:1;1732;1725:12;1669:70;1758:5;1748:15;;;1052:717;;;;;:::o;1982:423::-;2024:3;2062:5;2056:12;2089:6;2084:3;2077:19;2114:1;2124:162;2138:6;2135:1;2132:13;2124:162;;;2200:4;2256:13;;;2252:22;;2246:29;2228:11;;;2224:20;;2217:59;2153:12;2124:162;;;2128:3;2331:1;2324:4;2315:6;2310:3;2306:16;2302:27;2295:38;2394:4;2387:2;2383:7;2378:2;2370:6;2366:15;2362:29;2357:3;2353:39;2349:50;2342:57;;;1982:423;;;;:::o;2410:480::-;2635:2;2624:9;2617:21;2598:4;2661:45;2702:2;2691:9;2687:18;2679:6;2661:45;:::i;:::-;2754:9;2746:6;2742:22;2737:2;2726:9;2722:18;2715:50;2782:33;2808:6;2800;2782:33;:::i;:::-;2774:41;;;2880:1;2876;2871:3;2867:11;2863:19;2855:6;2851:32;2846:2;2835:9;2831:18;2824:60;2410:480;;;;;;:::o;2895:222::-;2960:9;;;2981:10;;;2978:133;;;3033:10;3028:3;3024:20;3021:1;3014:31;3068:4;3065:1;3058:15;3096:4;3093:1;3086:15;2978:133;2895:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRE20(string,string,address)":"77e070cc","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRE20Factory.sol\":\"OGRE20Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"src/OGRE20.sol\":{\"keccak256\":\"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51\",\"dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRE20Factory.sol\":{\"keccak256\":\"0xc961315e0e9024021495b5fcc43b5b5386f69bfa454dd918f193ab2677870b9c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://623561fe59a23e7716430651b2d27fbed986ae142cfb61cdc72f6126e5c94975\",\"dweb:/ipfs/QmPW5roe8eidzZxzwZgnMcrHaM27Do4LgbofcK692ZRMkd\"]},\"src/interfaces/IOGRE20Factory.sol\":{\"keccak256\":\"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c\",\"dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE20","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRE20Factory.sol":"OGRE20Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"src/OGRE20.sol":{"keccak256":"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98","urls":["bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51","dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRE20Factory.sol":{"keccak256":"0xc961315e0e9024021495b5fcc43b5b5386f69bfa454dd918f193ab2677870b9c","urls":["bzz-raw://623561fe59a23e7716430651b2d27fbed986ae142cfb61cdc72f6126e5c94975","dweb:/ipfs/QmPW5roe8eidzZxzwZgnMcrHaM27Do4LgbofcK692ZRMkd"],"license":"UNLICENSED"},"src/interfaces/IOGRE20Factory.sol":{"keccak256":"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c","urls":["bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c","dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB"],"license":"UNLICENSED"}},"version":1},"id":55} \ No newline at end of file diff --git a/out/OGRE721.sol/OGRE721.json b/out/OGRE721.sol/OGRE721.json new file mode 100644 index 0000000..cf3262e --- /dev/null +++ b/out/OGRE721.sol/OGRE721.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033","sourceMap":"411:482:41:-:0;;;468:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;563:5;570:7;548:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1871:51:76;1844:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1446:5:7;:13;1454:5;1446;:13;:::i;:::-;-1:-1:-1;1469:7:7;:17;1479:7;1469;:17;:::i;:::-;;1380:113;;468::41;;;411:482;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:76;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:76;-1:-1:-1;;;;;;1640:31:76;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1933:380::-;2012:1;2008:12;;;;2055;;;2076:61;;2130:4;2122:6;2118:17;2108:27;;2076:61;2183:2;2175:6;2172:14;2152:18;2149:38;2146:161;;2229:10;2224:3;2220:20;2217:1;2210:31;2264:4;2261:1;2254:15;2292:4;2289:1;2282:15;2146:161;;1933:380;;;:::o;2444:545::-;2546:2;2541:3;2538:11;2535:448;;;2582:1;2607:5;2603:2;2596:17;2652:4;2648:2;2638:19;2722:2;2710:10;2706:19;2703:1;2699:27;2693:4;2689:38;2758:4;2746:10;2743:20;2740:47;;;-1:-1:-1;2781:4:76;2740:47;2836:2;2831:3;2827:12;2824:1;2820:20;2814:4;2810:31;2800:41;;2891:82;2909:2;2902:5;2899:13;2891:82;;;2954:17;;;2935:1;2924:13;2891:82;;;2895:3;;;2535:448;2444:545;;;:::o;3165:1352::-;3285:10;;-1:-1:-1;;;;;3307:30:76;;3304:56;;;3340:18;;:::i;:::-;3369:97;3459:6;3419:38;3451:4;3445:11;3419:38;:::i;:::-;3413:4;3369:97;:::i;:::-;3521:4;;3585:2;3574:14;;3602:1;3597:663;;;;4304:1;4321:6;4318:89;;;-1:-1:-1;4373:19:76;;;4367:26;4318:89;-1:-1:-1;;3122:1:76;3118:11;;;3114:24;3110:29;3100:40;3146:1;3142:11;;;3097:57;4420:81;;3567:944;;3597:663;2391:1;2384:14;;;2428:4;2415:18;;-1:-1:-1;;3633:20:76;;;3751:236;3765:7;3762:1;3759:14;3751:236;;;3854:19;;;3848:26;3833:42;;3946:27;;;;3914:1;3902:14;;;;3781:19;;3751:236;;;3755:3;4015:6;4006:7;4003:19;4000:201;;;4076:19;;;4070:26;-1:-1:-1;;4159:1:76;4155:14;;;4171:3;4151:24;4147:37;4143:42;4128:58;4113:74;;4000:201;-1:-1:-1;;;;;4247:1:76;4231:14;;;4227:22;4214:36;;-1:-1:-1;3165:1352:76:o;:::-;411:482:41;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033","sourceMap":"411:482:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:300:7;;;;;;;;;;-1:-1:-1;1560:300:7;;;;;:::i;:::-;;:::i;:::-;;;565:14:76;;558:22;540:41;;528:2;513:18;1560:300:7;;;;;;;;2364:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3496:154::-;;;;;;;;;;-1:-1:-1;3496:154:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:76;;;1679:51;;1667:2;1652:18;3496:154:7;1533:203:76;3322:113:7;;;;;;;;;;-1:-1:-1;3322:113:7;;;;;:::i;:::-;;:::i;:::-;;4142:578;;;;;;;;;;-1:-1:-1;4142:578:7;;;;;:::i;:::-;;:::i;629:121:41:-;;;;;;:::i;:::-;;:::i;4786:132:7:-;;;;;;;;;;-1:-1:-1;4786:132:7;;;;;:::i;:::-;;:::i;798:93:41:-;;;;;;;;;;-1:-1:-1;798:93:41;;;;;:::i;:::-;;:::i;1726:84:14:-;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2184:118:7;;;;;;;;;;-1:-1:-1;2184:118:7;;;;;:::i;:::-;;:::i;1919:208::-;;;;;;;;;;-1:-1:-1;1919:208:7;;;;;:::i;:::-;;:::i;:::-;;;2848:25:76;;;2836:2;2821:18;1919:208:7;2702:177:76;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;2517:93:7;;;;;;;;;;;;;:::i;3717:144::-;;;;;;;;;;-1:-1:-1;3717:144:7;;;;;:::i;:::-;;:::i;4984:233::-;;;;;;;;;;-1:-1:-1;4984:233:7;;;;;:::i;:::-;;:::i;2676:255::-;;;;;;;;;;-1:-1:-1;2676:255:7;;;;;:::i;:::-;;:::i;3927:153::-;;;;;;;;;;-1:-1:-1;3927:153:7;;;;;:::i;:::-;;:::i;2543:215:2:-;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;1560:300:7:-;1662:4;-1:-1:-1;;;;;;1697:40:7;;-1:-1:-1;;;1697:40:7;;:104;;-1:-1:-1;;;;;;;1753:48:7;;-1:-1:-1;;;1753:48:7;1697:104;:156;;;-1:-1:-1;;;;;;;;;;862:40:17;;;1817:36:7;1678:175;1560:300;-1:-1:-1;;1560:300:7:o;2364:89::-;2409:13;2441:5;2434:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:89;:::o;3496:154::-;3563:7;3582:22;3596:7;3582:13;:22::i;:::-;-1:-1:-1;6033:7:7;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6059:24:7;3622:21;5963:127;3322:113;3393:35;3402:2;3406:7;735:10:12;3393:8:7;:35::i;:::-;3322:113;;:::o;4142:578::-;-1:-1:-1;;;;;4236:16:7;;4232:87;;4275:33;;-1:-1:-1;;;4275:33:7;;4305:1;4275:33;;;1679:51:76;1652:18;;4275:33:7;;;;;;;;4232:87;4537:21;4561:34;4569:2;4573:7;735:10:12;4561:7:7;:34::i;:::-;4537:58;;4626:4;-1:-1:-1;;;;;4609:21:7;:13;-1:-1:-1;;;;;4609:21:7;;4605:109;;4653:50;;-1:-1:-1;;;4653:50:7;;-1:-1:-1;;;;;5419:15:76;;;4653:50:7;;;5401:34:76;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4653:50:7;5161:375:76;4605:109:7;4222:498;4142:578;;;:::o;629:121:41:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;721:22:41::2;731:2;735:7;721:9;:22::i;4786:132:7:-:0;4872:39;4889:4;4895:2;4899:7;4872:39;;;;;;;;;;;;:16;:39::i;:::-;4786:132;;;:::o;798:93:41:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;870:14:41::2;876:7;870:5;:14::i;:::-;798:93:::0;:::o;2184:118:7:-;2247:7;2273:22;2287:7;2273:13;:22::i;1919:208::-;1982:7;-1:-1:-1;;;;;2005:19:7;;2001:87;;2047:30;;-1:-1:-1;;;2047:30:7;;2074:1;2047:30;;;1679:51:76;1652:18;;2047:30:7;1533:203:76;2001:87:7;-1:-1:-1;;;;;;2104:16:7;;;;;:9;:16;;;;;;;1919:208::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2517:93:7:-;2564:13;2596:7;2589:14;;;;;:::i;3717:144::-;3802:52;735:10:12;3835:8:7;3845;3802:18;:52::i;4984:233::-;5097:31;5110:4;5116:2;5120:7;5097:12;:31::i;:::-;5138:72;735:10:12;5186:4:7;5192:2;5196:7;5205:4;5138:33;:72::i;2676:255::-;2740:13;2765:22;2779:7;2765:13;:22::i;:::-;;2798:21;2822:10;3249:9;;;;;;;;;-1:-1:-1;3249:9:7;;;3173:92;2822:10;2798:34;;2873:1;2855:7;2849:21;:25;:75;;;;;;;;;;;;;;;;;2891:7;2900:18;:7;:16;:18::i;:::-;2877:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2849:75;2842:82;2676:255;-1:-1:-1;;;2676:255:7:o;3927:153::-;-1:-1:-1;;;;;4038:25:7;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3927:153::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1679:51:76::0;1652:18;;2672:31:2::1;1533:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;16212:241:7:-:0;16275:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:7;;16337:88;;16383:31;;-1:-1:-1;;;16383:31:7;;;;;2848:25:76;;;2821:18;;16383:31:7;2702:177:76;14492:120:7;14572:33;14581:2;14585:7;14594:4;14600;14572:8;:33::i;8861:795::-;8947:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:7;;;;9058:18;;;9054:86;;9092:37;9109:4;9115;9121:7;9092:16;:37::i;:::-;-1:-1:-1;;;;;9184:18:7;;;9180:256;;9300:48;9317:1;9321:7;9338:1;9342:5;9300:8;:48::i;:::-;-1:-1:-1;;;;;9391:15:7;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9391:20:7;;;9180:256;-1:-1:-1;;;;;9450:16:7;;;9446:107;;-1:-1:-1;;;;;9510:13:7;;;;;;:9;:13;;;;;:18;;9527:1;9510:18;;;9446:107;9563:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9563:21:7;-1:-1:-1;;;;;9563:21:7;;;;;;;;;9600:27;;9563:16;;9600:27;;;;;;;9645:4;8861:795;-1:-1:-1;;;;8861:795:7:o;1796:162:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1679:51:76;1652:18;;1901:40:2;1533:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;10656:100:7;10723:26;10733:2;10737:7;10723:26;;;;;;;;;;;;:9;:26::i;11510:227::-;11561:21;11585:40;11601:1;11605:7;11622:1;11585:7;:40::i;:::-;11561:64;-1:-1:-1;;;;;;11639:27:7;;11635:96;;11689:31;;-1:-1:-1;;;11689:31:7;;;;;2848:25:76;;;2821:18;;11689:31:7;2702:177:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15665:312:7:-;-1:-1:-1;;;;;15772:22:7;;15768:91;;15817:31;;-1:-1:-1;;;15817:31:7;;-1:-1:-1;;;;;1697:32:76;;15817:31:7;;;1679:51:76;1652:18;;15817:31:7;1533:203:76;15768:91:7;-1:-1:-1;;;;;15868:25:7;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15868:46:7;;;;;;;;;;15929:41;;540::76;;;15929::7;;513:18:76;15929:41:7;;;;;;;15665:312;;;:::o;993:924:11:-;-1:-1:-1;;;;;1173:14:11;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:11;;-1:-1:-1;;;;;1211:36:11;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:11;;;;;;;;-1:-1:-1;;1211:67:11;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:11;;-1:-1:-1;;;;;1697:32:76;;1672:39:11;;;1679:51:76;1652:18;;1672:39:11;1533:203:76;1564:323:11;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:11;;-1:-1:-1;;;1325:51:11;1321:182;;1445:39;;-1:-1:-1;;;1445:39:11;;-1:-1:-1;;;;;1697:32:76;;1445:39:11;;;1679:51:76;1652:18;;1445:39:11;1533:203:76;1321:182:11;1279:238;1207:694;993:924;;;;;:::o;1308:632:16:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;1488:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:16;-1:-1:-1;1465:41:16;-1:-1:-1;1595:28:16;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:16;-1:-1:-1;;;1780:2:16;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:16;1650:247;1861:21;-1:-1:-1;1917:6:16;1308:632;-1:-1:-1;;;1308:632:16:o;14794:662:7:-;14954:9;:31;;;-1:-1:-1;;;;;;14967:18:7;;;;14954:31;14950:460;;;15001:13;15017:22;15031:7;15017:13;:22::i;:::-;15001:38;-1:-1:-1;;;;;;15167:18:7;;;;;;:35;;;15198:4;-1:-1:-1;;;;;15189:13:7;:5;-1:-1:-1;;;;;15189:13:7;;;15167:35;:69;;;;;15207:29;15224:5;15231:4;15207:16;:29::i;:::-;15206:30;15167:69;15163:142;;;15263:27;;-1:-1:-1;;;15263:27:7;;-1:-1:-1;;;;;1697:32:76;;15263:27:7;;;1679:51:76;1652:18;;15263:27:7;1533:203:76;15163:142:7;15323:9;15319:81;;;15377:7;15373:2;-1:-1:-1;;;;;15357:28:7;15366:5;-1:-1:-1;;;;;15357:28:7;;;;;;;;;;;15319:81;14987:423;14950:460;-1:-1:-1;;15420:24:7;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15420:29:7;-1:-1:-1;;;;;15420:29:7;;;;;;;;;;14794:662::o;7105:368::-;7217:38;7231:5;7238:7;7247;7217:13;:38::i;:::-;7212:255;;-1:-1:-1;;;;;7275:19:7;;7271:186;;7321:31;;-1:-1:-1;;;7321:31:7;;;;;2848:25:76;;;2821:18;;7321:31:7;2702:177:76;7271:186:7;7398:44;;-1:-1:-1;;;7398:44:7;;-1:-1:-1;;;;;7114:32:76;;7398:44:7;;;7096:51:76;7163:18;;;7156:34;;;7069:18;;7398:44:7;6922:274:76;10977:207:7;11071:18;11077:2;11081:7;11071:5;:18::i;:::-;11099:78;735:10:12;11155:1:7;11159:2;11163:7;11172:4;11099:33;:78::i;29154:916:19:-;29207:7;;-1:-1:-1;;;29282:17:19;;29278:103;;-1:-1:-1;;;29319:17:19;;;-1:-1:-1;29364:2:19;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:19;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:19;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:19;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:19;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:19;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:19:o;6401:272:7:-;6504:4;-1:-1:-1;;;;;6539:21:7;;;;;;:127;;;6586:7;-1:-1:-1;;;;;6577:16:7;:5;-1:-1:-1;;;;;6577:16:7;;:52;;;;6597:32;6614:5;6621:7;6597:16;:32::i;:::-;6577:88;;;-1:-1:-1;6033:7:7;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6633:32:7;;;6059:24;;6633:32;6577:88;6520:146;6401:272;-1:-1:-1;;;;6401:272:7:o;9978:327::-;-1:-1:-1;;;;;10045:16:7;;10041:87;;10084:33;;-1:-1:-1;;;10084:33:7;;10114:1;10084:33;;;1679:51:76;1652:18;;10084:33:7;1533:203:76;10041:87:7;10137:21;10161:32;10169:2;10173:7;10190:1;10161:7;:32::i;:::-;10137:56;-1:-1:-1;;;;;;10207:27:7;;;10203:96;;10257:31;;-1:-1:-1;;;10257:31:7;;10285:1;10257:31;;;1679:51:76;1652:18;;10257:31:7;1533:203:76;14:131;-1:-1:-1;;;;;;88:32:76;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:76;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:76;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:76:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:76;;1348:180;-1:-1:-1;1348:180:76:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:76;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:76:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:76;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:496::-;5720:3;5758:6;5752:13;5774:66;5833:6;5828:3;5821:4;5813:6;5809:17;5774:66;:::i;:::-;5903:13;;5862:16;;;;5925:70;5903:13;5862:16;5972:4;5960:17;;5925:70;:::i;:::-;6011:20;;5541:496;-1:-1:-1;;;;5541:496:76:o;6042:489::-;-1:-1:-1;;;;;6311:15:76;;;6293:34;;6363:15;;6358:2;6343:18;;6336:43;6410:2;6395:18;;6388:34;;;6458:3;6453:2;6438:18;;6431:31;;;6236:4;;6479:46;;6505:19;;6497:6;6479:46;:::i;:::-;6471:54;6042:489;-1:-1:-1;;;;;;6042:489:76:o;6536:249::-;6605:6;6658:2;6646:9;6637:7;6633:23;6629:32;6626:52;;;6674:1;6671;6664:12;6626:52;6706:9;6700:16;6725:30;6749:5;6725:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","paused()":"5c975abb","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"burn token id\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"mint(address,uint256)\":{\"details\":\"mint token id\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine NFT Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRE721.sol\":\"OGRE721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/OGRE721.sol\":{\"keccak256\":\"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee\",\"dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"burn token id"},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"mint(address,uint256)":{"details":"mint token id"},"name()":{"details":"See {IERC721Metadata-name}."},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRE721.sol":"OGRE721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/OGRE721.sol":{"keccak256":"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522","urls":["bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee","dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t"],"license":"UNLICENSED"}},"version":1},"id":41} \ No newline at end of file diff --git a/out/OGRE721Factory.sol/OGRE721Factory.json b/out/OGRE721Factory.sol/OGRE721Factory.json new file mode 100644 index 0000000..4e3a42a --- /dev/null +++ b/out/OGRE721Factory.sol/OGRE721Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRE721","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506118ac8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063ef64982614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b61158d806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033a264697066735822122060e1db9fbe830df4cc4a12f23a475b00f0f7a3f9387a154a158f16c3ca39fb6c64736f6c63430008140033","sourceMap":"173:387:56:-:0;;;236:16;;;;;;;;;;173:387;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063ef64982614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b61158d806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033a264697066735822122060e1db9fbe830df4cc4a12f23a475b00f0f7a3f9387a154a158f16c3ca39fb6c64736f6c63430008140033","sourceMap":"173:387:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;258:300:56;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1938:32:76;;;1920:51;;1908:2;1893:18;258:300:56;1774:203:76;258:300:56;355:7;374:11;400:4;406:6;414:5;388:32;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;374:46;;449:1;430:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;465:57:56;;;-1:-1:-1;;;;;3380:15:76;;3362:34;;504:4:56;3427:2:76;3412:18;;3405:43;511:10:56;3464:18:76;;;3457:43;465:57:56;;;;;;;3312:2:76;465:57:56;;;547:3;258:300;-1:-1:-1;;;;258:300:56:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:717::-;1149:6;1157;1165;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1274:9;1261:23;1303:18;1344:2;1336:6;1333:14;1330:34;;;1360:1;1357;1350:12;1330:34;1383:50;1425:7;1416:6;1405:9;1401:22;1383:50;:::i;:::-;1373:60;;1486:2;1475:9;1471:18;1458:32;1442:48;;1515:2;1505:8;1502:16;1499:36;;;1531:1;1528;1521:12;1499:36;;1554:52;1598:7;1587:8;1576:9;1572:24;1554:52;:::i;:::-;1544:62;-1:-1:-1;;1656:2:76;1641:18;;1628:32;-1:-1:-1;;;;;1689:31:76;;1679:42;;1669:70;;1735:1;1732;1725:12;1669:70;1758:5;1748:15;;;1052:717;;;;;:::o;1982:423::-;2024:3;2062:5;2056:12;2089:6;2084:3;2077:19;2114:1;2124:162;2138:6;2135:1;2132:13;2124:162;;;2200:4;2256:13;;;2252:22;;2246:29;2228:11;;;2224:20;;2217:59;2153:12;2124:162;;;2128:3;2331:1;2324:4;2315:6;2310:3;2306:16;2302:27;2295:38;2394:4;2387:2;2383:7;2378:2;2370:6;2366:15;2362:29;2357:3;2353:39;2349:50;2342:57;;;1982:423;;;;:::o;2410:480::-;2635:2;2624:9;2617:21;2598:4;2661:45;2702:2;2691:9;2687:18;2679:6;2661:45;:::i;:::-;2754:9;2746:6;2742:22;2737:2;2726:9;2722:18;2715:50;2782:33;2808:6;2800;2782:33;:::i;:::-;2774:41;;;2880:1;2876;2871:3;2867:11;2863:19;2855:6;2851:32;2846:2;2835:9;2831:18;2824:60;2410:480;;;;;;:::o;2895:222::-;2960:9;;;2981:10;;;2978:133;;;3033:10;3028:3;3024:20;3021:1;3014:31;3068:4;3065:1;3058:15;3096:4;3093:1;3086:15;2978:133;2895:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRE721(string,string,address)":"ef649826","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRE721Factory.sol\":\"OGRE721Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/OGRE721.sol\":{\"keccak256\":\"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee\",\"dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRE721Factory.sol\":{\"keccak256\":\"0x2852605e24312fb256e54ebcaf54a3512700c9e266c9a4e0ccb6fc52169fc637\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6fe4c690ed90cf482a0124a0960fe1a36f742b5fc45df2c126bf33e78ec97a8b\",\"dweb:/ipfs/QmTX1VuHv1gmjNpDckyGWRUmegpqXen3NNgfGapYUzCRD2\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE721","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRE721Factory.sol":"OGRE721Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/OGRE721.sol":{"keccak256":"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522","urls":["bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee","dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRE721Factory.sol":{"keccak256":"0x2852605e24312fb256e54ebcaf54a3512700c9e266c9a4e0ccb6fc52169fc637","urls":["bzz-raw://6fe4c690ed90cf482a0124a0960fe1a36f742b5fc45df2c126bf33e78ec97a8b","dweb:/ipfs/QmTX1VuHv1gmjNpDckyGWRUmegpqXen3NNgfGapYUzCRD2"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/OGREBridge.sol/OGREBridge.json b/out/OGREBridge.sol/OGREBridge.json new file mode 100644 index 0000000..207440f --- /dev/null +++ b/out/OGREBridge.sol/OGREBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approvedChains","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"blockedAcounts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"depositItem","inputs":[{"name":"nftAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"depositor","type":"address","internalType":"address"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleApprovedChain","inputs":[{"name":"chainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleApprovedContract","inputs":[{"name":"nftAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleBlockedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawItem","inputs":[{"name":"nftAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountBlock","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"blocked","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ChainApproval","inputs":[{"name":"chainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ContractApproval","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ItemDeposited","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ItemWithdrawn","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161077338038061077383398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b61067e806100f55f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063715018a61161006e578063715018a61461015a578063820232b4146101625780638da5cb5b14610175578063990db7a51461018f578063d8faf85f146101a2578063f2fde38b146101c4575f80fd5b80630857b6f3146100b557806322a6cc56146100ca57806326749ad7146100dd5780633d755508146101145780634aceb65e146101275780635c975abb14610149575b5f80fd5b6100c86100c3366004610597565b6101d7565b005b6100c86100d83660046105b7565b610248565b6100ff6100eb366004610597565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100c86101223660046105f8565b61035a565b6100ff610135366004610631565b60016020525f908152604090205460ff1681565b5f54600160a01b900460ff166100ff565b6100c86103b9565b6100c8610170366004610631565b6103cc565b5f546040516001600160a01b03909116815260200161010b565b6100c861019d366004610597565b610430565b6100ff6101b0366004610597565b60036020525f908152604090205460ff1681565b6100c86101d2366004610597565b61049a565b6101df6104d7565b6001600160a01b0381165f81815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527fca94056dee32c185a00e037f7e05dac3321b40a1723eedd953c8a9377e54366b91015b60405180910390a150565b610250610503565b6001600160a01b0384166102ab5760405162461bcd60e51b815260206004820152601960248201527f6e6674416464726573732063616e6e6f74206265207a65726f0000000000000060448201526064015b60405180910390fd5b336001600160a01b038316146103035760405162461bcd60e51b815260206004820152601860248201527f6465706f7369746f72206d7573742062652063616c6c6572000000000000000060448201526064016102a2565b604080516001600160a01b038681168252602082018690528416818301526060810183905290517ff48aeb22d64b26448551eb44f635bb218b035f9b74f0c901e1fd0956ad6a668c9181900360800190a150505050565b6103626104d7565b61036a610503565b604080516001600160a01b0385811682526020820185905283168183015290517f2e4cfbe03dba815a12e46f2003d5518d42f196ec7ba8477579c217c6105bbdd59181900360600190a1505050565b6103c16104d7565b6103ca5f61052d565b565b6103d46104d7565b5f81815260016020908152604091829020805460ff8082161560ff199092168217909255835185815291161515918101919091527f141594b58fd779f96f9adde8f6a6ae8566e9f3eb7df5e4bf72024053c2db5989910161023d565b6104386104d7565b6001600160a01b0381165f81815260036020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527ffecb1aa833d13c983ee041271f6ec2edc8bcb0407ec85340adf3ad1f69c2dbc3910161023d565b6104a26104d7565b6001600160a01b0381166104cb57604051631e4fbdf760e01b81525f60048201526024016102a2565b6104d48161052d565b50565b5f546001600160a01b031633146103ca5760405163118cdaa760e01b81523360048201526024016102a2565b5f54600160a01b900460ff16156103ca5760405163d93c066560e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610592575f80fd5b919050565b5f602082840312156105a7575f80fd5b6105b08261057c565b9392505050565b5f805f80608085870312156105ca575f80fd5b6105d38561057c565b9350602085013592506105e86040860161057c565b9396929550929360600135925050565b5f805f6060848603121561060a575f80fd5b6106138461057c565b9250602084013591506106286040850161057c565b90509250925092565b5f60208284031215610641575f80fd5b503591905056fea264697066735822122024e5462ada77b6f927b54a2c0d23bef93fac80c1876017501deff81367af474064736f6c63430008140033","sourceMap":"301:2503:42:-:0;;;879:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;455:51:76;428:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;879:46:42;301:2503;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:203::-;301:2503:42;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063715018a61161006e578063715018a61461015a578063820232b4146101625780638da5cb5b14610175578063990db7a51461018f578063d8faf85f146101a2578063f2fde38b146101c4575f80fd5b80630857b6f3146100b557806322a6cc56146100ca57806326749ad7146100dd5780633d755508146101145780634aceb65e146101275780635c975abb14610149575b5f80fd5b6100c86100c3366004610597565b6101d7565b005b6100c86100d83660046105b7565b610248565b6100ff6100eb366004610597565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100c86101223660046105f8565b61035a565b6100ff610135366004610631565b60016020525f908152604090205460ff1681565b5f54600160a01b900460ff166100ff565b6100c86103b9565b6100c8610170366004610631565b6103cc565b5f546040516001600160a01b03909116815260200161010b565b6100c861019d366004610597565b610430565b6100ff6101b0366004610597565b60036020525f908152604090205460ff1681565b6100c86101d2366004610597565b61049a565b6101df6104d7565b6001600160a01b0381165f81815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527fca94056dee32c185a00e037f7e05dac3321b40a1723eedd953c8a9377e54366b91015b60405180910390a150565b610250610503565b6001600160a01b0384166102ab5760405162461bcd60e51b815260206004820152601960248201527f6e6674416464726573732063616e6e6f74206265207a65726f0000000000000060448201526064015b60405180910390fd5b336001600160a01b038316146103035760405162461bcd60e51b815260206004820152601860248201527f6465706f7369746f72206d7573742062652063616c6c6572000000000000000060448201526064016102a2565b604080516001600160a01b038681168252602082018690528416818301526060810183905290517ff48aeb22d64b26448551eb44f635bb218b035f9b74f0c901e1fd0956ad6a668c9181900360800190a150505050565b6103626104d7565b61036a610503565b604080516001600160a01b0385811682526020820185905283168183015290517f2e4cfbe03dba815a12e46f2003d5518d42f196ec7ba8477579c217c6105bbdd59181900360600190a1505050565b6103c16104d7565b6103ca5f61052d565b565b6103d46104d7565b5f81815260016020908152604091829020805460ff8082161560ff199092168217909255835185815291161515918101919091527f141594b58fd779f96f9adde8f6a6ae8566e9f3eb7df5e4bf72024053c2db5989910161023d565b6104386104d7565b6001600160a01b0381165f81815260036020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527ffecb1aa833d13c983ee041271f6ec2edc8bcb0407ec85340adf3ad1f69c2dbc3910161023d565b6104a26104d7565b6001600160a01b0381166104cb57604051631e4fbdf760e01b81525f60048201526024016102a2565b6104d48161052d565b50565b5f546001600160a01b031633146103ca5760405163118cdaa760e01b81523360048201526024016102a2565b5f54600160a01b900460ff16156103ca5760405163d93c066560e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610592575f80fd5b919050565b5f602082840312156105a7575f80fd5b6105b08261057c565b9392505050565b5f805f80608085870312156105ca575f80fd5b6105d38561057c565b9350602085013592506105e86040860161057c565b9396929550929360600135925050565b5f805f6060848603121561060a575f80fd5b6106138461057c565b9250602084013591506106286040850161057c565b90509250925092565b5f60208284031215610641575f80fd5b503591905056fea264697066735822122024e5462ada77b6f927b54a2c0d23bef93fac80c1876017501deff81367af474064736f6c63430008140033","sourceMap":"301:2503:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:222;;;;;;:::i;:::-;;:::i;:::-;;1555:399;;;;;;:::i;:::-;;:::i;401:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;950:14:76;;943:22;925:41;;913:2;898:18;401:49:42;;;;;;;;1960:244;;;;;;:::i;:::-;;:::i;349:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1726:84:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2293:101:2;;;:::i;931:192:42:-;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:2;;;1641:51:76;;1629:2;1614:18;1638:85:2;1495:203:76;1357:192:42;;;;;;:::i;:::-;;:::i;456:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2543:215:2;;;;;;:::i;:::-;;:::i;1129:222:42:-;1531:13:2;:11;:13::i;:::-;-1:-1:-1;;;;;1241:29:42;::::1;;::::0;;;:17:::1;:29;::::0;;;;;;;;;;::::1;::::0;;::::1;1240:30;-1:-1:-1::0;;1208:62:42;;::::1;::::0;::::1;::::0;;;1285:59;;1871:51:76;;;1314:29:42;1965:14:76;1958:22;1938:18;;;1931:50;1285:59:42::1;::::0;1844:18:76;1285:59:42::1;;;;;;;;1129:222:::0;:::o;1555:399::-;1350:19:14;:17;:19::i;:::-;-1:-1:-1;;;;;1699:26:42;::::1;1691:64;;;::::0;-1:-1:-1;;;1691:64:42;;2194:2:76;1691:64:42::1;::::0;::::1;2176:21:76::0;2233:2;2213:18;;;2206:30;2272:27;2252:18;;;2245:55;2317:18;;1691:64:42::1;;;;;;;;;1773:10;-1:-1:-1::0;;;;;1773:23:42;::::1;;1765:60;;;::::0;-1:-1:-1;;;1765:60:42;;2548:2:76;1765:60:42::1;::::0;::::1;2530:21:76::0;2587:2;2567:18;;;2560:30;2626:26;2606:18;;;2599:54;2670:18;;1765:60:42::1;2346:348:76::0;1765:60:42::1;1882:65;::::0;;-1:-1:-1;;;;;2986:15:76;;;2968:34;;3033:2;3018:18;;3011:34;;;3081:15;;3061:18;;;3054:43;3128:2;3113:18;;3106:34;;;1882:65:42;;::::1;::::0;;;;2917:3:76;1882:65:42;;::::1;1555:399:::0;;;;:::o;1960:244::-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;2152:45:42::2;::::0;;-1:-1:-1;;;;;3409:15:76;;;3391:34;;3456:2;3441:18;;3434:34;;;3504:15;;3484:18;;;3477:43;2152:45:42;;::::2;::::0;;;;3341:2:76;2152:45:42;;::::2;1960:244:::0;;;:::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;931:192:42:-;1531:13:2;:11;:13::i;:::-;1031:23:42::1;::::0;;;:14:::1;:23;::::0;;;;;;;;;;::::1;::::0;;::::1;1030:24;-1:-1:-1::0;;1004:50:42;;::::1;::::0;::::1;::::0;;;1069:47;;3699:25:76;;;1092:23:42;;3767:14:76;3760:22;3740:18;;;3733:50;;;;1069:47:42::1;::::0;3672:18:76;1069:47:42::1;3531:258:76::0;1357:192:42;1531:13:2;:11;:13::i;:::-;-1:-1:-1;;;;;1458:23:42;::::1;;::::0;;;:14:::1;:23;::::0;;;;;;;;;;::::1;::::0;;::::1;1457:24;-1:-1:-1::0;;1431:50:42;;::::1;::::0;::::1;::::0;;;1496:46;;1871:51:76;;;1518:23:42;1965:14:76;1958:22;1938:18;;;1931:50;1496:46:42::1;::::0;1844:18:76;1496:46:42::1;1703:284:76::0;2543:215:2;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1641:51:76::0;1614:18;;2672:31:2::1;1495:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1641:51:76;1614:18;;1901:40:2;1495:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:76:o;383:397::-;469:6;477;485;493;546:3;534:9;525:7;521:23;517:33;514:53;;;563:1;560;553:12;514:53;586:29;605:9;586:29;:::i;:::-;576:39;;662:2;651:9;647:18;634:32;624:42;;685:38;719:2;708:9;704:18;685:38;:::i;:::-;383:397;;;;-1:-1:-1;675:48:76;;770:2;755:18;742:32;;-1:-1:-1;;383:397:76:o;977:328::-;1054:6;1062;1070;1123:2;1111:9;1102:7;1098:23;1094:32;1091:52;;;1139:1;1136;1129:12;1091:52;1162:29;1181:9;1162:29;:::i;:::-;1152:39;;1238:2;1227:9;1223:18;1210:32;1200:42;;1261:38;1295:2;1284:9;1280:18;1261:38;:::i;:::-;1251:48;;977:328;;;;;:::o;1310:180::-;1369:6;1422:2;1410:9;1401:7;1397:23;1393:32;1390:52;;;1438:1;1435;1428:12;1390:52;-1:-1:-1;1461:23:76;;1310:180;-1:-1:-1;1310:180:76:o","linkReferences":{}},"methodIdentifiers":{"approvedChains(uint256)":"4aceb65e","approvedContracts(address)":"26749ad7","blockedAcounts(address)":"d8faf85f","depositItem(address,uint256,address,uint256)":"22a6cc56","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","toggleApprovedChain(uint256)":"820232b4","toggleApprovedContract(address)":"0857b6f3","toggleBlockedAccount(address)":"990db7a5","transferOwnership(address)":"f2fde38b","withdrawItem(address,uint256,address)":"3d755508"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"blocked\",\"type\":\"bool\"}],\"name\":\"AccountBlock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ChainApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ContractApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"}],\"name\":\"ItemDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ItemWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedChains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"approvedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blockedAcounts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"}],\"name\":\"depositItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"toggleApprovedChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"}],\"name\":\"toggleApprovedContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"toggleBlockedAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"withdrawItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREBridge.sol\":\"OGREBridge\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREBridge.sol\":{\"keccak256\":\"0xab74bd808fbdfdc99a1936206b78f4dca06d4cce9819cdeb308a9f142f36cc6a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://faed5c136f29672478148a75039e5d4a3ef0867b8a9d8adb3c432e87cf6eba8f\",\"dweb:/ipfs/QmNVW4wWjDVcDP5uzU7BjgL7rnbfhqw2PE5JghV58skRzW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"bool","name":"blocked","type":"bool","indexed":false}],"type":"event","name":"AccountBlock","anonymous":false},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256","indexed":false},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ChainApproval","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ContractApproval","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"depositor","type":"address","indexed":false},{"internalType":"uint256","name":"destinationChainId","type":"uint256","indexed":false}],"type":"event","name":"ItemDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false}],"type":"event","name":"ItemWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"approvedChains","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"approvedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"blockedAcounts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"},{"internalType":"uint256","name":"destinationChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"depositItem"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"toggleApprovedChain"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"toggleApprovedContract"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"toggleBlockedAccount"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawItem"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREBridge.sol":"OGREBridge"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREBridge.sol":{"keccak256":"0xab74bd808fbdfdc99a1936206b78f4dca06d4cce9819cdeb308a9f142f36cc6a","urls":["bzz-raw://faed5c136f29672478148a75039e5d4a3ef0867b8a9d8adb3c432e87cf6eba8f","dweb:/ipfs/QmNVW4wWjDVcDP5uzU7BjgL7rnbfhqw2PE5JghV58skRzW"],"license":"UNLICENSED"}},"version":1},"id":42} \ No newline at end of file diff --git a/out/OGREDAO.sol/OGREDAO.json b/out/OGREDAO.sol/OGREDAO.json new file mode 100644 index 0000000..0eaa3ea --- /dev/null +++ b/out/OGREDAO.sol/OGREDAO.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"daoName_","type":"string","internalType":"string"},{"name":"daoMetadata_","type":"string","internalType":"string"},{"name":"nftAddress_","type":"address","internalType":"address"},{"name":"proposalFactoryAddress_","type":"address","internalType":"address"},{"name":"proposalCost_","type":"uint256","internalType":"uint256"},{"name":"admin_","type":"address","internalType":"address"},{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"draftProposal","inputs":[{"name":"proposalTitle","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"evaluateProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.MemberStatus"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inviteMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"proposalCost","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DAOCreated","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposalFactoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"admin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberInvited","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposal","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalEvaluated","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposal","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a","sourceMap":"796:13017:43:-:0;;;5291:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:49;:14;;;-1:-1:-1;;;;;5571:27:43;::::1;5563:74;;;::::0;-1:-1:-1;;;5563:74:43;;2323:2:76;5563:74:43::1;::::0;::::1;2305:21:76::0;2362:2;2342:18;;;2335:30;2401:34;2381:18;;;2374:62;-1:-1:-1;;;2452:18:76;;;2445:32;2494:19;;5563:74:43::1;;;;;;;;;-1:-1:-1::0;;;;;5655:22:43;::::1;5647:68;;;::::0;-1:-1:-1;;;5647:68:43;;2726:2:76;5647:68:43::1;::::0;::::1;2708:21:76::0;2765:2;2745:18;;;2738:30;2804:34;2784:18;;;2777:62;-1:-1:-1;;;2855:18:76;;;2848:31;2896:19;;5647:68:43::1;2524:397:76::0;5647:68:43::1;5726:7;:18;5736:8:::0;5726:7;:18:::1;:::i;:::-;-1:-1:-1::0;5754:11:43::1;:26;5768:12:::0;5754:11;:26:::1;:::i;:::-;-1:-1:-1::0;;;;;;5790:24:43;;::::1;;::::0;5824:48;::::1;;::::0;5882:12:::1;:28:::0;;;5921:39:::1;-1:-1:-1::0;;;;;;;;;;;5953:6:43;5921:10:::1;:39::i;:::-;-1:-1:-1::0;5970:40:43::1;-1:-1:-1::0;;;;;;;;;;;6003:6:43;5970:10:::1;:40::i;:::-;-1:-1:-1::0;6020:56:43::1;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;6020:13:43::1;:56::i;:::-;6092;::::0;;-1:-1:-1;;;;;5773:15:76;;;5755:34;;5825:15;;;5820:2;5805:18;;5798:43;5877:15;;5857:18;;;5850:43;6092:56:43;;::::1;::::0;;;;5705:2:76;6092:56:43;;::::1;5291:864:::0;;;;;;;796:13017;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:177::-;1070:13;;-1:-1:-1;;;;;1112:31:76;;1102:42;;1092:70;;1158:1;1155;1148:12;1092:70;991:177;;;:::o;1173:943::-;1317:6;1325;1333;1341;1349;1357;1365;1418:3;1406:9;1397:7;1393:23;1389:33;1386:53;;;1435:1;1432;1425:12;1386:53;1462:16;;-1:-1:-1;;;;;1527:14:76;;;1524:34;;;1554:1;1551;1544:12;1524:34;1577:61;1630:7;1621:6;1610:9;1606:22;1577:61;:::i;:::-;1567:71;;1684:2;1673:9;1669:18;1663:25;1647:41;;1713:2;1703:8;1700:16;1697:36;;;1729:1;1726;1719:12;1697:36;;1752:63;1807:7;1796:8;1785:9;1781:24;1752:63;:::i;:::-;1742:73;;;1834:49;1879:2;1868:9;1864:18;1834:49;:::i;:::-;1824:59;;1902:49;1947:2;1936:9;1932:18;1902:49;:::i;:::-;1892:59;;1991:3;1980:9;1976:19;1970:26;1960:36;;2015:50;2060:3;2049:9;2045:19;2015:50;:::i;:::-;2005:60;;2105:3;2094:9;2090:19;2084:26;2074:36;;1173:943;;;;;;;;;;:::o;2926:380::-;3005:1;3001:12;;;;3048;;;3069:61;;3123:4;3115:6;3111:17;3101:27;;3069:61;3176:2;3168:6;3165:14;3145:18;3142:38;3139:161;;3222:10;3217:3;3213:20;3210:1;3203:31;3257:4;3254:1;3247:15;3285:4;3282:1;3275:15;3139:161;;2926:380;;;:::o;3437:545::-;3539:2;3534:3;3531:11;3528:448;;;3575:1;3600:5;3596:2;3589:17;3645:4;3641:2;3631:19;3715:2;3703:10;3699:19;3696:1;3692:27;3686:4;3682:38;3751:4;3739:10;3736:20;3733:47;;;-1:-1:-1;3774:4:76;3733:47;3829:2;3824:3;3820:12;3817:1;3813:20;3807:4;3803:31;3793:41;;3884:82;3902:2;3895:5;3892:13;3884:82;;;3947:17;;;3928:1;3917:13;3884:82;;;3888:3;;;3528:448;3437:545;;;:::o;4158:1352::-;4278:10;;-1:-1:-1;;;;;4300:30:76;;4297:56;;;4333:18;;:::i;:::-;4362:97;4452:6;4412:38;4444:4;4438:11;4412:38;:::i;:::-;4406:4;4362:97;:::i;:::-;4514:4;;4578:2;4567:14;;4595:1;4590:663;;;;5297:1;5314:6;5311:89;;;-1:-1:-1;5366:19:76;;;5360:26;5311:89;-1:-1:-1;;4115:1:76;4111:11;;;4107:24;4103:29;4093:40;4139:1;4135:11;;;4090:57;5413:81;;4560:944;;4590:663;3384:1;3377:14;;;3421:4;3408:18;;-1:-1:-1;;4626:20:76;;;4744:236;4758:7;4755:1;4752:14;4744:236;;;4847:19;;;4841:26;4826:42;;4939:27;;;;4907:1;4895:14;;;;4774:19;;4744:236;;;4748:3;5008:6;4999:7;4996:19;4993:201;;;5069:19;;;5063:26;-1:-1:-1;;5152:1:76;5148:14;;;5164:3;5144:24;5140:37;5136:42;5121:58;5106:74;;4993:201;-1:-1:-1;;;;;5240:1:76;5224:14;;;5220:22;5207:36;;-1:-1:-1;4158:1352:76:o;5515:384::-;796:13017:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033","sourceMap":"796:13017:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1948:44;;;;;;;;;;-1:-1:-1;1948:44:43;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1948:44:43;;;;;;-1:-1:-1;;;;;363:32:76;;;345:51;;333:2;318:18;1948:44:43;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;863:14:76;;856:22;838:41;;826:2;811:18;2565:202:0;698:187:76;1039:25:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1606:26::-;;;;;;;;;;;;;;;;;;;1792:25:76;;;1780:2;1765:18;1606:26:43;1646:177:76;1177:476:50;;;;;;;;;;-1:-1:-1;1177:476:50;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;3067:33:76;;;3049:52;;3037:2;3022:18;1177:476:50;2905:202:76;8281:432:43;;;;;;;;;;-1:-1:-1;8281:432:43;;;;;:::i;:::-;;:::i;8719:444::-;;;;;;;;;;-1:-1:-1;8719:444:43;;;;;:::i;:::-;;:::i;3810:120:0:-;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;10794:2086:43;;;;;;;;;;-1:-1:-1;10794:2086:43;;;;;:::i;:::-;;:::i;4226:136:0:-;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;5328:245::-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;6719:278:43:-;;;;;;;;;;-1:-1:-1;6719:278:43;;;;;:::i;:::-;;:::i;1012:21::-;;;;;;;;;;;;;:::i;1340:28::-;;;;;;;;;;;;;;;;3004:263:49;;;;;;;;;;-1:-1:-1;3004:263:49;;;;;:::i;:::-;;:::i;9627:113:43:-;;;;;;;;;;-1:-1:-1;9627:113:43;;;;;:::i;:::-;-1:-1:-1;;;;;9709:20:43;9686:4;9709:20;;;:10;:20;;;;;;:24;;;9627:113;922:35;;;;;;;;;;;;;;;144:20:49;;;;;;;;;;;;;;;;7540:108:43;;;;;;;;;;-1:-1:-1;7540:108:43;;;;;:::i;:::-;7609:13;:32;7540:108;243:45:49;;;;;;;;;;-1:-1:-1;243:45:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;1071:30:43;;;;;;;;;;;;;;;;1222:31;;;;;;;;;;;;;;;;9169:124;;;;;;;;;;-1:-1:-1;9169:124:43;;;;;:::i;:::-;9232:18;9269:17;;;:8;:17;;;;;;;;;9169:124;;;;;;;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;6473:106:43:-;;;;;;;;;;-1:-1:-1;6473:106:43;;;;;:::i;:::-;;:::i;9795:602::-;;;;;;:::i;:::-;;:::i;6281:90::-;;;;;;;;;;-1:-1:-1;6281:90:43;;;;;:::i;:::-;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;12939:801:43;;;;;;;;;;-1:-1:-1;12939:801:43;;;;;:::i;:::-;;:::i;7957:317::-;;;;;;;;;;-1:-1:-1;7957:317:43;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;9299:152:43:-;;;;;;;;;;-1:-1:-1;9299:152:43;;;;;:::i;:::-;;:::i;869:47::-;;;;;;;;;;;;;;;1858:28;;;;;;;;;;;;;;;;7769:145;;;;;;;;;;-1:-1:-1;7769:145:43;;;;;:::i;:::-;;:::i;2113:27::-;;;;;;;;;;;;;;;;7138:284;;;;;;;;;;-1:-1:-1;7138:284:43;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;1039:25:43:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1177:476:50:-;1549:39;;;-1:-1:-1;;;;;8205:15:76;;;8187:34;;8252:2;8237:18;;8230:34;;;8300:15;;8280:18;;;8273:43;1549:39:50;;-1:-1:-1;;1549:39:50;;;;;;8137:2:76;1549:39:50;;;-1:-1:-1;;;;1177:476:50;;;;;;;:::o;8281:432:43:-;8347:36;;-1:-1:-1;;;8347:36:43;;;;;1792:25:76;;;8387:10:43;;-1:-1:-1;;;;;8355:10:43;8347:27;;;;1765:18:76;;8347:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8347:50:43;;8339:101;;;;-1:-1:-1;;;8339:101:43;;8785:2:76;8339:101:43;;;8767:21:76;8824:2;8804:18;;;8797:30;8863:34;8843:18;;;8836:62;-1:-1:-1;;;8914:18:76;;;8907:36;8960:19;;8339:101:43;;;;;;;;;8479:29;8458:17;;;;:8;:17;;;;;;;;:50;;;;;;;;:::i;:::-;;8450:90;;;;-1:-1:-1;;;8450:90:43;;9192:2:76;8450:90:43;;;9174:21:76;9231:2;9211:18;;;9204:30;9270:29;9250:18;;;9243:57;9317:18;;8450:90:43;8990:351:76;8450:90:43;8551:17;;;;:8;:17;;;;;:49;;-1:-1:-1;;8551:49:43;8571:29;8551:49;;;8610:11;:16;;8551:49;;:17;8610:16;;8551:49;;8610:16;:::i;:::-;;;;-1:-1:-1;;8642:64:43;;;;;;8667:4;;8674:10;;8686:7;;8695:10;;8642:64;:::i;:::-;;;;;;;;8281:432;:::o;8719:444::-;8787:36;;-1:-1:-1;;;8787:36:43;;;;;1792:25:76;;;8827:10:43;;-1:-1:-1;;;;;8795:10:43;8787:27;;;;1765:18:76;;8787:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8787:50:43;;8779:103;;;;-1:-1:-1;;;8779:103:43;;10271:2:76;8779:103:43;;;10253:21:76;10310:2;10290:18;;;10283:30;10349:34;10329:18;;;10322:62;-1:-1:-1;;;10400:18:76;;;10393:38;10448:19;;8779:103:43;10069:404:76;8779:103:43;8921:31;8900:17;;;:8;:17;;;;;;;;:52;;;;;;;;:::i;:::-;;8892:94;;;;-1:-1:-1;;;8892:94:43;;10680:2:76;8892:94:43;;;10662:21:76;10719:2;10699:18;;;10692:30;10758:31;10738:18;;;10731:59;10807:18;;8892:94:43;10478:353:76;8892:94:43;9017:31;8997:17;;;:8;:17;;;;;:51;;-1:-1:-1;;8997:51:43;;;9058:11;:16;;8997:51;;9017:31;9058:16;;8997:51;;9058:16;:::i;:::-;;;;-1:-1:-1;;9090:66:43;;;;;;9117:4;;9124:10;;9136:7;;9145:10;;9090:66;:::i;10794:2086::-;-1:-1:-1;;;;;9709:20:43;;10854:4;9709:20;;;:10;:20;;;;;;10870:78;;;;-1:-1:-1;;;10870:78:43;;;;;;;:::i;:::-;11002:29;10980:8;-1:-1:-1;;;;;10966:30:43;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;;;;;:::i;:::-;;10958:100;;;;-1:-1:-1;;;10958:100:43;;11870:2:76;10958:100:43;;;11852:21:76;11909:2;11889:18;;;11882:30;-1:-1:-1;;;11928:18:76;;;11921:52;11990:18;;10958:100:43;11668:346:76;10958:100:43;11090:8;-1:-1:-1;;;;;11076:33:43;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11115:1;11076:40;11068:81;;;;-1:-1:-1;;;11068:81:43;;12410:2:76;11068:81:43;;;12392:21:76;12449:2;12429:18;;;12422:30;12488;12468:18;;;12461:58;12536:18;;11068:81:43;12208:352:76;11068:81:43;11199:8;-1:-1:-1;;;;;11185:31:43;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11167:15;:51;11159:108;;;;-1:-1:-1;;;11159:108:43;;12767:2:76;11159:108:43;;;12749:21:76;12806:2;12786:18;;;12779:30;12845:34;12825:18;;;12818:62;-1:-1:-1;;;12896:18:76;;;12889:42;12948:19;;11159:108:43;12565:408:76;11159:108:43;11296:37;;-1:-1:-1;;;11296:37:43;;11278:15;11296:37;;;1792:25:76;;;11278:15:43;-1:-1:-1;;;;;11296:34:43;;;;;1765:18:76;;11296:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11362;;-1:-1:-1;;;11362:37:43;;11397:1;11362:37;;;1792:25:76;11278:55:43;;-1:-1:-1;11343:16:43;;-1:-1:-1;;;;;11362:34:43;;;;;1765:18:76;;11362:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11432;;-1:-1:-1;;;11432:37:43;;11467:1;11432:37;;;1792:25:76;11343:56:43;;-1:-1:-1;11409:20:43;;-1:-1:-1;;;;;11432:34:43;;;;;1765:18:76;;11432:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11409:60;-1:-1:-1;11479:18:43;11409:60;11500:18;11510:8;11500:7;:18;:::i;:::-;:33;;;;:::i;:::-;11479:54;;11544:28;11609:5;11590:15;;11576:11;;:29;;;;:::i;:::-;11575:39;;;;:::i;:::-;11544:70;;11624:29;11691:5;11671:16;;11657:11;;:30;;;;:::i;:::-;11656:40;;;;:::i;:::-;11624:72;;11707:18;11743:17;11828:21;11817:8;:32;11813:83;;;11881:4;11865:20;;11813:83;11956:20;11943:10;:33;11939:83;;;-1:-1:-1;12007:4:43;11939:83;12036:13;:29;;;;;12053:12;12036:29;12032:676;;;12125:39;;-1:-1:-1;;;12125:39:43;;12162:1;12125:39;;;14095:36:76;-1:-1:-1;;;;;12125:36:43;;;;;14068:18:76;;12125:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12218:19;12254:8;-1:-1:-1;;;;;12240:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12218:62;;12299:7;12294:290;12316:11;12312:1;:15;;;12294:290;;;12380:36;;-1:-1:-1;;;12380:36:43;;14125:4:76;14113:17;;12380:36:43;;;14095::76;12352:25:43;;-1:-1:-1;;;;;12380:33:43;;;;;14068:18:76;;12380:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12380:36:43;;;;;;;;;;;;:::i;:::-;12352:64;;12446:53;12458:3;:10;;;12470:3;:9;;;12481:3;:7;;;12490:3;:8;;;12446:11;:53::i;:::-;12434:9;;;:65;;;12517:52;;-1:-1:-1;;;12517:52:43;;16251:4:76;16239:17;;12517:52:43;;;16221:36:76;16273:18;;;16266:34;;;;-1:-1:-1;;;;;12517:38:43;;;;;16194:18:76;;12517:52:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:250;12329:3;;;;;:::i;:::-;;;;12294:290;;;;12067:527;12032:676;;;12658:39;;-1:-1:-1;;;12658:39:43;;12695:1;12658:39;;;14095:36:76;-1:-1:-1;;;;;12658:36:43;;;;;14068:18:76;;12658:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12032:676;12723:103;;;16962:14:76;;16955:22;16937:41;;17021:14;;17014:22;17009:2;16994:18;;16987:50;17053:18;;;17046:34;;;17111:2;17096:18;;17089:34;;;17154:3;17139:19;;17132:35;;;12723:103:43;;16924:3:76;16909:19;12723:103:43;;;;;;;12844:12;:29;;;;;12860:13;12844:29;12837:36;10794:2086;-1:-1:-1;;;;;;;;;;10794:2086:43:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;6719:278:43:-;6822:5;6800:18;:27;;6792:78;;;;-1:-1:-1;;;6792:78:43;;;;;;;:::i;:::-;6909:1;6888:18;:22;6880:63;;;;-1:-1:-1;;;6880:63:43;;17787:2:76;6880:63:43;;;17769:21:76;17826:2;17806:18;;;17799:30;17865;17845:18;;;17838:58;17913:18;;6880:63:43;17585:352:76;6880:63:43;6954:15;:36;6719:278::o;1012:21::-;;;;;;;:::i;3004:263:49:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:49;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:49:o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;6473:106:43:-;6544:11;:28;6558:14;6544:11;:28;:::i;:::-;;6473:106;:::o;9795:602::-;9871:7;9911:12;;9898:9;:25;9890:77;;;;-1:-1:-1;;;9890:77:43;;20976:2:76;9890:77:43;;;20958:21:76;21015:2;20995:18;;;20988:30;21054:34;21034:18;;;21027:62;-1:-1:-1;;;21105:18:76;;;21098:37;21152:19;;9890:77:43;20774:403:76;9890:77:43;10048:106;;-1:-1:-1;;;10048:106:43;;10033:12;;-1:-1:-1;;;;;10069:22:43;10048:64;;;;:106;;10113:13;;10136:4;;10143:10;;10048:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10033:121;;10205:1;10188:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;10235:13:43;;;-1:-1:-1;;;;;10216:16:43;;;;;;:10;:16;;;;;;;;:32;;;10258:24;;;:9;:24;;;;;:31;;-1:-1:-1;;;;;;10258:31:43;;;;;;10342:13;;10305:63;;;;;;10329:4;;10227;;10357:10;;10305:63;:::i;:::-;;;;;;;;10386:4;9795:602;-1:-1:-1;;9795:602:43:o;6281:90::-;6344:7;:20;6354:10;6344:7;:20;:::i;12939:801::-;-1:-1:-1;;;;;9709:20:43;;9686:4;9709:20;;;:10;:20;;;;;;12999:78;;;;-1:-1:-1;;;12999:78:43;;;;;;;:::i;:::-;13131:27;13109:8;-1:-1:-1;;;;;13095:30:43;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;;;;;;:::i;:::-;;13087:98;;;;-1:-1:-1;;;13087:98:43;;11870:2:76;13087:98:43;;;11852:21:76;11909:2;11889:18;;;11882:30;-1:-1:-1;;;11928:18:76;;;11921:52;11990:18;;13087:98:43;11668:346:76;13087:98:43;13246:1;13217:8;-1:-1:-1;;;;;13203:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;13195:78;;;;-1:-1:-1;;;13195:78:43;;21807:2:76;13195:78:43;;;21789:21:76;21846:2;21826:18;;;21819:30;-1:-1:-1;;;21865:18:76;;;21858:51;21926:18;;13195:78:43;21605:345:76;13195:78:43;13326:39;;-1:-1:-1;;;13326:39:43;;13363:1;13326:39;;;14095:36:76;-1:-1:-1;;;;;13326:36:43;;;;;14068:18:76;;13326:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13410:19;13446:8;-1:-1:-1;;;;;13432:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13410:62;;13487:7;13482:210;13504:11;13500:1;:15;;;13482:210;;;13564:36;;-1:-1:-1;;;13564:36:43;;14125:4:76;14113:17;;13564:36:43;;;14095::76;13536:25:43;;-1:-1:-1;;;;;13564:33:43;;;;;14068:18:76;;13564:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13564:36:43;;;;;;;;;;;;:::i;:::-;13536:64;;13614:67;13629:3;:10;;;13641:3;:9;;;13652:3;:7;;;13661:3;:8;;;13671:3;:9;;;13614:14;:67::i;:::-;;13522:170;13517:3;;;;;:::i;:::-;;;;13482:210;;;-1:-1:-1;13707:26:43;;-1:-1:-1;;;;;363:32:76;;345:51;;13707:26:43;;333:2:76;318:18;13707:26:43;;;;;;;;12989:751;12939:801;:::o;7957:317::-;280:23:72;2464:16:0;2475:4;2464:10;:16::i;:::-;8073:31:43::1;8052:17:::0;;;:8:::1;:17;::::0;;;;;::::1;;:52;::::0;::::1;;;;;;:::i;:::-;;8044:101;;;::::0;-1:-1:-1;;;8044:101:43;;22356:2:76;8044:101:43::1;::::0;::::1;22338:21:76::0;22395:2;22375:18;;;22368:30;22434:34;22414:18;;;22407:62;-1:-1:-1;;;22485:18:76;;;22478:34;22529:19;;8044:101:43::1;22154:400:76::0;8044:101:43::1;8156:17;::::0;;;:8:::1;:17;::::0;;;;:46;;8176:26:::1;::::0;8156:17;-1:-1:-1;;8156:46:43::1;8176:26:::0;;8156:46:::1;;::::0;;-1:-1:-1;8218:49:43::1;::::0;;8240:4:::1;22799:34:76::0;;-1:-1:-1;;;;;8247:10:43::1;22869:15:76::0;22864:2;22849:18;;22842:43;22901:18;;;22894:34;;;8218:49:43::1;::::0;22749:2:76;22734:18;8218:49:43::1;22559:375:76::0;4642:138:0;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;9299:152:43:-:0;9375:4;9438:6;-1:-1:-1;;;;;9398:46:43;9406:10;-1:-1:-1;;;;;9398:27:43;;9426:7;9398:36;;;;;;;;;;;;;1792:25:76;;1780:2;1765:18;;1646:177;9398:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9398:46:43;;;9299:152;-1:-1:-1;;;9299:152:43:o;7769:145::-;7841:1;7830:8;:12;7822:56;;;;-1:-1:-1;;;7822:56:43;;23141:2:76;7822:56:43;;;23123:21:76;23180:2;23160:18;;;23153:30;23219:33;23199:18;;;23192:61;23270:18;;7822:56:43;22939:355:76;7822:56:43;7888:19;7898:8;3429:5:49;:16;3373:79;7888:19:43;7769:145;:::o;7138:284::-;7244:5;7221:19;:28;;7213:79;;;;-1:-1:-1;;;7213:79:43;;;;;;;:::i;:::-;7332:1;7310:19;:23;7302:64;;;;-1:-1:-1;;;7302:64:43;;17787:2:76;7302:64:43;;;17769:21:76;17826:2;17806:18;;;17799:30;17865;17845:18;;;17838:58;17913:18;;7302:64:43;17585:352:76;7302:64:43;7377:16;:38;7138:284::o;3686:388:49:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:49;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;:13;:22;;;;;;:29;;-1:-1:-1;;3945:29:49;3970:4;3945:29;;;3881:54;-1:-1:-1;3990:54:49;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:49;3686:388;-1:-1:-1;;;;;3686:388:49:o;3199:103:0:-;3265:30;3276:4;735:10:12;3265::0;:30::i;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;5008:907:49;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:49;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:49;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:49;;;;;1792:25:76;;;1765:18;;5277:24:49;1646:177:76;5241:60:49;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:49;;;;;24201:25:76;;;5372:15:49;24242:18:76;;;24235:34;24285:18;;;24278:34;;;24174:18;;5348:47:49;23999:319:76;5311:84:49;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:49;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:49;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:49;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:49;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:49:o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;25490:32:76;;3565:47:0;;;25472:51:76;25539:18;;;25532:34;;;25445:18;;3565:47:0;25298:274:76;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:76;;14:180;-1:-1:-1;14:180:76:o;407:286::-;465:6;518:2;506:9;497:7;493:23;489:32;486:52;;;534:1;531;524:12;486:52;560:23;;-1:-1:-1;;;;;;612:32:76;;602:43;;592:71;;659:1;656;649:12;592:71;682:5;407:286;-1:-1:-1;;;407:286:76:o;890:250::-;975:1;985:113;999:6;996:1;993:13;985:113;;;1075:11;;;1069:18;1056:11;;;1049:39;1021:2;1014:10;985:113;;;-1:-1:-1;;1132:1:76;1114:16;;1107:27;890:250::o;1145:271::-;1187:3;1225:5;1219:12;1252:6;1247:3;1240:19;1268:76;1337:6;1330:4;1325:3;1321:14;1314:4;1307:5;1303:16;1268:76;:::i;:::-;1398:2;1377:15;-1:-1:-1;;1373:29:76;1364:39;;;;1405:4;1360:50;;1145:271;-1:-1:-1;;1145:271:76:o;1421:220::-;1570:2;1559:9;1552:21;1533:4;1590:45;1631:2;1620:9;1616:18;1608:6;1590:45;:::i;1828:131::-;-1:-1:-1;;;;;1903:31:76;;1893:42;;1883:70;;1949:1;1946;1939:12;1964:936;2061:6;2069;2077;2085;2093;2146:3;2134:9;2125:7;2121:23;2117:33;2114:53;;;2163:1;2160;2153:12;2114:53;2202:9;2189:23;2221:31;2246:5;2221:31;:::i;:::-;2271:5;-1:-1:-1;2328:2:76;2313:18;;2300:32;2341:33;2300:32;2341:33;:::i;:::-;2393:7;-1:-1:-1;2447:2:76;2432:18;;2419:32;;-1:-1:-1;2502:2:76;2487:18;;2474:32;2525:18;2555:14;;;2552:34;;;2582:1;2579;2572:12;2552:34;2620:6;2609:9;2605:22;2595:32;;2665:7;2658:4;2654:2;2650:13;2646:27;2636:55;;2687:1;2684;2677:12;2636:55;2727:2;2714:16;2753:2;2745:6;2742:14;2739:34;;;2769:1;2766;2759:12;2739:34;2814:7;2809:2;2800:6;2796:2;2792:15;2788:24;2785:37;2782:57;;;2835:1;2832;2825:12;2782:57;1964:936;;;;-1:-1:-1;1964:936:76;;-1:-1:-1;2866:2:76;2858:11;;2888:6;1964:936;-1:-1:-1;;;1964:936:76:o;3479:247::-;3538:6;3591:2;3579:9;3570:7;3566:23;3562:32;3559:52;;;3607:1;3604;3597:12;3559:52;3646:9;3633:23;3665:31;3690:5;3665:31;:::i;3731:315::-;3799:6;3807;3860:2;3848:9;3839:7;3835:23;3831:32;3828:52;;;3876:1;3873;3866:12;3828:52;3912:9;3899:23;3889:33;;3972:2;3961:9;3957:18;3944:32;3985:31;4010:5;3985:31;:::i;:::-;4035:5;4025:15;;;3731:315;;;;;:::o;4051:127::-;4112:10;4107:3;4103:20;4100:1;4093:31;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4183:253;4255:2;4249:9;4297:4;4285:17;;4332:18;4317:34;;4353:22;;;4314:62;4311:88;;;4379:18;;:::i;:::-;4415:2;4408:22;4183:253;:::o;4441:275::-;4512:2;4506:9;4577:2;4558:13;;-1:-1:-1;;4554:27:76;4542:40;;4612:18;4597:34;;4633:22;;;4594:62;4591:88;;;4659:18;;:::i;:::-;4695:2;4688:22;4441:275;;-1:-1:-1;4441:275:76:o;4721:187::-;4770:4;4803:18;4795:6;4792:30;4789:56;;;4825:18;;:::i;:::-;-1:-1:-1;4891:2:76;4870:15;-1:-1:-1;;4866:29:76;4897:4;4862:40;;4721:187::o;4913:338::-;4978:5;5007:53;5023:36;5052:6;5023:36;:::i;:::-;5007:53;:::i;:::-;4998:62;;5083:6;5076:5;5069:21;5123:3;5114:6;5109:3;5105:16;5102:25;5099:45;;;5140:1;5137;5130:12;5099:45;5189:6;5184:3;5177:4;5170:5;5166:16;5153:43;5243:1;5236:4;5227:6;5220:5;5216:18;5212:29;5205:40;4913:338;;;;;:::o;5256:222::-;5299:5;5352:3;5345:4;5337:6;5333:17;5329:27;5319:55;;5370:1;5367;5360:12;5319:55;5392:80;5468:3;5459:6;5446:20;5439:4;5431:6;5427:17;5392:80;:::i;5483:944::-;5597:6;5605;5613;5621;5629;5682:3;5670:9;5661:7;5657:23;5653:33;5650:53;;;5699:1;5696;5689:12;5650:53;5738:9;5725:23;5757:31;5782:5;5757:31;:::i;:::-;5807:5;-1:-1:-1;5859:2:76;5844:18;;5831:32;;-1:-1:-1;5914:2:76;5899:18;;5886:32;5937:18;5967:14;;;5964:34;;;5994:1;5991;5984:12;5964:34;6017:50;6059:7;6050:6;6039:9;6035:22;6017:50;:::i;:::-;6007:60;;6120:2;6109:9;6105:18;6092:32;6076:48;;6149:2;6139:8;6136:16;6133:36;;;6165:1;6162;6155:12;6133:36;-1:-1:-1;6188:24:76;;6243:4;6235:13;;6231:27;-1:-1:-1;6221:55:76;;6272:1;6269;6262:12;6221:55;6295:74;6361:7;6356:2;6343:16;6338:2;6334;6330:11;6295:74;:::i;:::-;5483:944;;;;-1:-1:-1;5483:944:76;;6416:3;6401:19;6388:33;;5483:944;-1:-1:-1;;;5483:944:76:o;6432:127::-;6493:10;6488:3;6484:20;6481:1;6474:31;6524:4;6521:1;6514:15;6548:4;6545:1;6538:15;6564:346;6714:2;6699:18;;6747:1;6736:13;;6726:144;;6792:10;6787:3;6783:20;6780:1;6773:31;6827:4;6824:1;6817:15;6855:4;6852:1;6845:15;6726:144;6879:25;;;6564:346;:::o;6915:322::-;6984:6;7037:2;7025:9;7016:7;7012:23;7008:32;7005:52;;;7053:1;7050;7043:12;7005:52;7093:9;7080:23;7126:18;7118:6;7115:30;7112:50;;;7158:1;7155;7148:12;7112:50;7181;7223:7;7214:6;7203:9;7199:22;7181:50;:::i;:::-;7171:60;6915:322;-1:-1:-1;;;;6915:322:76:o;7562:380::-;7641:1;7637:12;;;;7684;;;7705:61;;7759:4;7751:6;7747:17;7737:27;;7705:61;7812:2;7804:6;7801:14;7781:18;7778:38;7775:161;;7858:10;7853:3;7849:20;7846:1;7839:31;7893:4;7890:1;7883:15;7921:4;7918:1;7911:15;7775:161;;7562:380;;;:::o;8327:251::-;8397:6;8450:2;8438:9;8429:7;8425:23;8421:32;8418:52;;;8466:1;8463;8456:12;8418:52;8498:9;8492:16;8517:31;8542:5;8517:31;:::i;9346:127::-;9407:10;9402:3;9398:20;9395:1;9388:31;9438:4;9435:1;9428:15;9462:4;9459:1;9452:15;9478:125;9543:9;;;9564:10;;;9561:36;;;9577:18;;:::i;9608:456::-;-1:-1:-1;;;;;9895:15:76;;;9877:34;;9947:15;;;9942:2;9927:18;;9920:43;9994:2;9979:18;;9972:34;;;;10042:15;;;10037:2;10022:18;;10015:43;9826:3;9811:19;;9608:456::o;10836:128::-;10903:9;;;10924:11;;;10921:37;;;10938:18;;:::i;10969:409::-;11171:2;11153:21;;;11210:2;11190:18;;;11183:30;11249:34;11244:2;11229:18;;11222:62;-1:-1:-1;;;11315:2:76;11300:18;;11293:43;11368:3;11353:19;;10969:409::o;11383:280::-;11473:6;11526:2;11514:9;11505:7;11501:23;11497:32;11494:52;;;11542:1;11539;11532:12;11494:52;11574:9;11568:16;11613:1;11606:5;11603:12;11593:40;;11629:1;11626;11619:12;12019:184;12089:6;12142:2;12130:9;12121:7;12117:23;12113:32;12110:52;;;12158:1;12155;12148:12;12110:52;-1:-1:-1;12181:16:76;;12019:184;-1:-1:-1;12019:184:76:o;13548:168::-;13621:9;;;13652;;13669:15;;;13663:22;;13649:37;13639:71;;13690:18;;:::i;13721:217::-;13761:1;13787;13777:132;;13831:10;13826:3;13822:20;13819:1;13812:31;13866:4;13863:1;13856:15;13894:4;13891:1;13884:15;13777:132;-1:-1:-1;13923:9:76;;13721:217::o;14333:322::-;14409:5;14438:53;14454:36;14483:6;14454:36;:::i;14438:53::-;14429:62;;14514:6;14507:5;14500:21;14554:3;14545:6;14540:3;14536:16;14533:25;14530:45;;;14571:1;14568;14561:12;14530:45;14584:65;14642:6;14635:4;14628:5;14624:16;14619:3;14584:65;:::i;14660:236::-;14713:5;14766:3;14759:4;14751:6;14747:17;14743:27;14733:55;;14784:1;14781;14774:12;14733:55;14806:84;14886:3;14877:6;14871:13;14864:4;14856:6;14852:17;14806:84;:::i;14901:1143::-;14996:6;15049:2;15037:9;15028:7;15024:23;15020:32;15017:52;;;15065:1;15062;15055:12;15017:52;15098:9;15092:16;15127:18;15168:2;15160:6;15157:14;15154:34;;;15184:1;15181;15174:12;15154:34;15207:22;;;;15263:4;15245:16;;;15241:27;15238:47;;;15281:1;15278;15271:12;15238:47;15307:22;;:::i;:::-;15359:2;15353:9;15371:33;15396:7;15371:33;:::i;:::-;15413:22;;15481:2;15473:11;;;15467:18;15451:14;;;15444:42;15525:2;15517:11;;15511:18;15541:16;;;15538:36;;;15570:1;15567;15560:12;15538:36;15593:17;;15641:4;15633:13;;15629:27;-1:-1:-1;15619:55:76;;15670:1;15667;15660:12;15619:55;15706:78;15776:7;15771:2;15765:9;15760:2;15756;15752:11;15706:78;:::i;:::-;15701:2;15694:5;15690:14;15683:102;;15824:2;15820;15816:11;15810:18;15853:2;15843:8;15840:16;15837:36;;;15869:1;15866;15859:12;15837:36;15905:55;15952:7;15941:8;15937:2;15933:17;15905:55;:::i;:::-;15900:2;15893:5;15889:14;15882:79;;16008:3;16004:2;16000:12;15994:19;15988:3;15981:5;15977:15;15970:44;16033:5;16023:15;;;;;14901:1143;;;;:::o;16311:175::-;16348:3;16392:4;16385:5;16381:16;16421:4;16412:7;16409:17;16406:43;;16429:18;;:::i;:::-;16478:1;16465:15;;16311:175;-1:-1:-1;;16311:175:76:o;17178:402::-;17380:2;17362:21;;;17419:2;17399:18;;;17392:30;17458:34;17453:2;17438:18;;17431:62;-1:-1:-1;;;17524:2:76;17509:18;;17502:36;17570:3;17555:19;;17178:402::o;17942:623::-;18250:1;18246;18241:3;18237:11;18233:19;18225:6;18221:32;18210:9;18203:51;18290:6;18285:2;18274:9;18270:18;18263:34;18333:3;18328:2;18317:9;18313:18;18306:31;18184:4;18360:46;18401:3;18390:9;18386:19;18378:6;18360:46;:::i;:::-;18454:9;18446:6;18442:22;18437:2;18426:9;18422:18;18415:50;18482:33;18508:6;18500;18482:33;:::i;:::-;18474:41;;;18552:6;18546:3;18535:9;18531:19;18524:35;17942:623;;;;;;;;:::o;18696:545::-;18798:2;18793:3;18790:11;18787:448;;;18834:1;18859:5;18855:2;18848:17;18904:4;18900:2;18890:19;18974:2;18962:10;18958:19;18955:1;18951:27;18945:4;18941:38;19010:4;18998:10;18995:20;18992:47;;;-1:-1:-1;19033:4:76;18992:47;19088:2;19083:3;19079:12;19076:1;19072:20;19066:4;19062:31;19052:41;;19143:82;19161:2;19154:5;19151:13;19143:82;;;19206:17;;;19187:1;19176:13;19143:82;;;19147:3;;;18696:545;;;:::o;19417:1352::-;19543:3;19537:10;19570:18;19562:6;19559:30;19556:56;;;19592:18;;:::i;:::-;19621:97;19711:6;19671:38;19703:4;19697:11;19671:38;:::i;:::-;19665:4;19621:97;:::i;:::-;19773:4;;19837:2;19826:14;;19854:1;19849:663;;;;20556:1;20573:6;20570:89;;;-1:-1:-1;20625:19:76;;;20619:26;20570:89;-1:-1:-1;;19374:1:76;19370:11;;;19366:24;19362:29;19352:40;19398:1;19394:11;;;19349:57;20672:81;;19819:944;;19849:663;18643:1;18636:14;;;18680:4;18667:18;;-1:-1:-1;;19885:20:76;;;20003:236;20017:7;20014:1;20011:14;20003:236;;;20106:19;;;20100:26;20085:42;;20198:27;;;;20166:1;20154:14;;;;20033:19;;20003:236;;;20007:3;20267:6;20258:7;20255:19;20252:201;;;20328:19;;;20322:26;-1:-1:-1;;20411:1:76;20407:14;;;20423:3;20403:24;20399:37;20395:42;20380:58;20365:74;;20252:201;-1:-1:-1;;;;;20499:1:76;20483:14;;;20479:22;20466:36;;-1:-1:-1;19417:1352:76:o;21182:418::-;21387:2;21376:9;21369:21;21350:4;21407:45;21448:2;21437:9;21433:18;21425:6;21407:45;:::i;:::-;-1:-1:-1;;;;;21526:15:76;;;21521:2;21506:18;;21499:43;21578:15;;;;21573:2;21558:18;;;21551:43;21399:53;21182:418;-1:-1:-1;;21182:418:76:o;23299:695::-;23606:6;23595:9;23588:25;23678:1;23674;23669:3;23665:11;23661:19;23653:6;23649:32;23644:2;23633:9;23629:18;23622:60;23718:6;23713:2;23702:9;23698:18;23691:34;23761:3;23756:2;23745:9;23741:18;23734:31;23569:4;23788:46;23829:3;23818:9;23814:19;23806:6;23788:46;:::i;:::-;23883:9;23875:6;23871:22;23865:3;23854:9;23850:19;23843:51;23911:33;23937:6;23929;23911:33;:::i;:::-;23903:41;;;23981:6;23975:3;23964:9;23960:19;23953:35;23299:695;;;;;;;;;:::o;24323:384::-;-1:-1:-1;;;;;;24508:33:76;;24496:46;;24565:13;;24478:3;;24587:74;24565:13;24650:1;24641:11;;24634:4;24622:17;;24587:74;:::i;:::-;24681:16;;;;24699:1;24677:24;;24323:384;-1:-1:-1;;;24323:384:76:o;24712:287::-;24841:3;24879:6;24873:13;24895:66;24954:6;24949:3;24942:4;24934:6;24930:17;24895:66;:::i;:::-;24977:16;;;;;24712:287;-1:-1:-1;;24712:287:76:o;25004:289::-;25179:6;25168:9;25161:25;25222:2;25217;25206:9;25202:18;25195:30;25142:4;25242:45;25283:2;25272:9;25268:18;25260:6;25242:45;:::i","linkReferences":{},"immutableReferences":{"47103":[{"start":1658,"length":32},{"start":5267,"length":32}],"47105":[{"start":1153,"length":32},{"start":2117,"length":32},{"start":2534,"length":32},{"start":2618,"length":32},{"start":3027,"length":32},{"start":6593,"length":32},{"start":6727,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","daoMetadata()":"0787e15c","daoName()":"48976936","delay()":"6a42b8f8","draftProposal(string)":"9f367e08","evaluateProposal(address)":"2df57dd6","executeProposal(address)":"a67a03ab","getMemberStatus(uint256)":"7d0d719b","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","inviteMember(uint256)":"bc5862a4","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","loadedActions(bytes32)":"6e8c7ab9","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalCost()":"e664f3b2","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","registerMember(uint256)":"22e994f3","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setDelay(uint256)":"e177246e","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8","supportsInterface(bytes4)":"01ffc9a7","unregisterMember(uint256)":"23dd523d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"daoName_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"daoMetadata_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nftAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposalFactoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"DAOCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MemberInvited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalEvaluated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle\",\"type\":\"string\"}],\"name\":\"draftProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"evaluateProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"enum Enums.MemberStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"inviteMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"registerMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Craig Branscom\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"DAOCreated(address,address,address)\":{\"params\":{\"admin\":\"address set with initial admin role\",\"nftAddress\":\"address of nft contract linked to dao\",\"proposalFactoryAddress\":\"address of proposal factory used by dao\"}},\"MemberInvited(address,address,uint256)\":{\"params\":{\"daoAddress\":\"address of dao where member was invited\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberRegistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was registered\",\"memberAddress\":\"address registering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberUnregistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was unregistered\",\"memberAddress\":\"address unregistering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being unregistered\"}},\"ProposalCreated(address,address,uint256,address)\":{\"params\":{\"creator\":\"address of proposal creator\",\"daoAddress\":\"address of dao\",\"proposal\":\"address of proposal contract\",\"proposalId\":\"unique proposal id assigned by dao\"}},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"ProposalExecuted(address)\":{\"params\":{\"proposal\":\"address of proposal that was executed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"admin_\":\"address that will be assigned the DAO_ADMIN role\",\"daoMetadata_\":\"metadata link for the dao\",\"daoName_\":\"name of the dao\",\"delay_\":\"amount of time that must elapse before a loaded action can be executed (in seconds)\",\"nftAddress_\":\"address of ERC721 contract representing voting rights\",\"proposalCost_\":\"required cost to draft a proposal (in wei)\",\"proposalFactoryAddress_\":\"address of OGREProposalFactory contract\"}},\"draftProposal(string)\":{\"details\":\"craft a new proposal\"},\"evaluateProposal(address)\":{\"details\":\"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.\",\"params\":{\"proposal\":\"address of proposal contract to evaluate\"},\"returns\":{\"_0\":\"bool true if proposal passed, false if failed\"}},\"executeProposal(address)\":{\"details\":\"executes readied actions\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}},\"isProposal(address)\":{\"details\":\"returns true if address is a proposal contract created by dao.\",\"params\":{\"proposal\":\"address to check\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDAOMetadata(string)\":{\"details\":\"sets new dao metadata\",\"params\":{\"newDAOMetadata\":\"new dao metadata\"}},\"setDAOName(string)\":{\"details\":\"sets new dao name\",\"params\":{\"newDAOName\":\"new dao name\"}},\"setDelay(uint256)\":{\"details\":\"sets a new delay for action hopper\",\"params\":{\"newDelay\":\"new delay value (in seconds)\"}},\"setMinVotePeriod(uint256)\":{\"details\":\"sets new min vote period for dao\",\"params\":{\"newMinVotePeriod\":\"min time in seconds\"}},\"setQuorumThreshold(uint256)\":{\"details\":\"sets new quorum threshold for dao. \",\"params\":{\"newQuorumThreshold\":\"quorum percentage (e.g. 555 = 5.55%)\"}},\"setSupportThreshold(uint256)\":{\"details\":\"sets new support threshold for dao\",\"params\":{\"newSupportThreshold\":\"support percentage (e.g. 555 = 5.55%)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine DAO Contract\",\"version\":1},\"userdoc\":{\"events\":{\"DAOCreated(address,address,address)\":{\"notice\":\"logs a successful dao creation\"},\"MemberInvited(address,address,uint256)\":{\"notice\":\"logs a successful member invited\"},\"MemberRegistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member registration\"},\"MemberUnregistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member unregistration\"},\"ProposalCreated(address,address,uint256,address)\":{\"notice\":\"logs a proposal creation\"},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"ProposalExecuted(address)\":{\"notice\":\"logs successful execution of all proposal actions\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREDAO.sol\":\"OGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"daoName_","type":"string"},{"internalType":"string","name":"daoMetadata_","type":"string"},{"internalType":"address","name":"nftAddress_","type":"address"},{"internalType":"address","name":"proposalFactoryAddress_","type":"address"},{"internalType":"uint256","name":"proposalCost_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"address","name":"proposalFactoryAddress","type":"address","indexed":false},{"internalType":"address","name":"admin","type":"address","indexed":false}],"type":"event","name":"DAOCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"MemberInvited","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"proposal","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalEvaluated","anonymous":false},{"inputs":[{"internalType":"address","name":"proposal","type":"address","indexed":false}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"proposalTitle","type":"string"}],"stateMutability":"payable","type":"function","name":"draftProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"evaluateProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"enum Enums.MemberStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"inviteMember"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerMember"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDelay"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"admin_":"address that will be assigned the DAO_ADMIN role","daoMetadata_":"metadata link for the dao","daoName_":"name of the dao","delay_":"amount of time that must elapse before a loaded action can be executed (in seconds)","nftAddress_":"address of ERC721 contract representing voting rights","proposalCost_":"required cost to draft a proposal (in wei)","proposalFactoryAddress_":"address of OGREProposalFactory contract"}},"draftProposal(string)":{"details":"craft a new proposal"},"evaluateProposal(address)":{"details":"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.","params":{"proposal":"address of proposal contract to evaluate"},"returns":{"_0":"bool true if proposal passed, false if failed"}},"executeProposal(address)":{"details":"executes readied actions"},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}},"isProposal(address)":{"details":"returns true if address is a proposal contract created by dao.","params":{"proposal":"address to check"}},"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDAOMetadata(string)":{"details":"sets new dao metadata","params":{"newDAOMetadata":"new dao metadata"}},"setDAOName(string)":{"details":"sets new dao name","params":{"newDAOName":"new dao name"}},"setDelay(uint256)":{"details":"sets a new delay for action hopper","params":{"newDelay":"new delay value (in seconds)"}},"setMinVotePeriod(uint256)":{"details":"sets new min vote period for dao","params":{"newMinVotePeriod":"min time in seconds"}},"setQuorumThreshold(uint256)":{"details":"sets new quorum threshold for dao. ","params":{"newQuorumThreshold":"quorum percentage (e.g. 555 = 5.55%)"}},"setSupportThreshold(uint256)":{"details":"sets new support threshold for dao","params":{"newSupportThreshold":"support percentage (e.g. 555 = 5.55%)"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREDAO.sol":"OGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":43} \ No newline at end of file diff --git a/out/OGREDAOFactory.sol/OGREDAOFactory.json b/out/OGREDAOFactory.sol/OGREDAOFactory.json new file mode 100644 index 0000000..7efd3b5 --- /dev/null +++ b/out/OGREDAOFactory.sol/OGREDAOFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"proposalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"admin","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DAOFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527faab2cc7f2123749388ff257fd1a3f45420dc9ba35a1d2feafcb9c44d63a4887a9060200160405180910390a161323c806100505f395ff3fe608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000208565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000139565b620000b19796959493929190620002fc565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e191906200035a565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a198975050505050505050565b612e86806200038183390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200016b575f80fd5b813567ffffffffffffffff8082111562000189576200018962000147565b604051601f8301601f19908116603f01168101908282118183101715620001b457620001b462000147565b81604052838152866020858801011115620001cd575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b038116811462000203575f80fd5b919050565b5f805f805f805f60e0888a0312156200021f575f80fd5b873567ffffffffffffffff8082111562000237575f80fd5b620002458b838c016200015b565b985060208a01359150808211156200025b575f80fd5b506200026a8a828b016200015b565b9650506200027b60408901620001ec565b94506200028b60608901620001ec565b935060808801359250620002a260a08901620001ec565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002dd57602081850181015186830182015201620002bf565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200031060e083018a620002b7565b828103602084015262000324818a620002b7565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037a57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa2646970667358221220aa8c98b14d7edf3516838a9c4b1328c635fb729200914bc9d60cfef6160b3eb664736f6c63430008140033","sourceMap":"173:605:57:-:0;;;283:65;;;;;;;;;-1:-1:-1;312:29:57;;330:10;160:51:76;;312:29:57;;148:2:76;133:18;312:29:57;;;;;;;173:605;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000208565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000139565b620000b19796959493929190620002fc565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e191906200035a565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a198975050505050505050565b612e86806200038183390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200016b575f80fd5b813567ffffffffffffffff8082111562000189576200018962000147565b604051601f8301601f19908116603f01168101908282118183101715620001b457620001b462000147565b81604052838152866020858801011115620001cd575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b038116811462000203575f80fd5b919050565b5f805f805f805f60e0888a0312156200021f575f80fd5b873567ffffffffffffffff8082111562000237575f80fd5b620002458b838c016200015b565b985060208a01359150808211156200025b575f80fd5b506200026a8a828b016200015b565b9650506200027b60408901620001ec565b94506200028b60608901620001ec565b935060808801359250620002a260a08901620001ec565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002dd57602081850181015186830182015201620002bf565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200031060e083018a620002b7565b828103602084015262000324818a620002b7565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037a57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa2646970667358221220aa8c98b14d7edf3516838a9c4b1328c635fb729200914bc9d60cfef6160b3eb664736f6c63430008140033","sourceMap":"173:605:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;354:422:57;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2304:32:76;;;2286:51;;2274:2;2259:18;354:422:57;2140:203:76;354:422:57;528:7;547:11;573:4;579:8;589:3;594:15;611:12;625:5;632;561:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;547:91;;667:1;648:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;683:57:57;;;-1:-1:-1;;;;;4074:15:76;;4056:34;;722:4:57;4121:2:76;4106:18;;4099:43;729:10:57;4158:18:76;;;4151:43;683:57:57;;;;;;;4006:2:76;683:57:57;;;765:3;354:422;-1:-1:-1;;;;;;;;354:422:57:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:173::-;1120:20;;-1:-1:-1;;;;;1169:31:76;;1159:42;;1149:70;;1215:1;1212;1205:12;1149:70;1052:173;;;:::o;1230:905::-;1363:6;1371;1379;1387;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1521:9;1508:23;1550:18;1591:2;1583:6;1580:14;1577:34;;;1607:1;1604;1597:12;1577:34;1630:50;1672:7;1663:6;1652:9;1648:22;1630:50;:::i;:::-;1620:60;;1733:2;1722:9;1718:18;1705:32;1689:48;;1762:2;1752:8;1749:16;1746:36;;;1778:1;1775;1768:12;1746:36;;1801:52;1845:7;1834:8;1823:9;1819:24;1801:52;:::i;:::-;1791:62;;;1872:38;1906:2;1895:9;1891:18;1872:38;:::i;:::-;1862:48;;1929:38;1963:2;1952:9;1948:18;1929:38;:::i;:::-;1919:48;;2014:3;2003:9;1999:19;1986:33;1976:43;;2038:39;2072:3;2061:9;2057:19;2038:39;:::i;:::-;2028:49;;2124:3;2113:9;2109:19;2096:33;2086:43;;1230:905;;;;;;;;;;:::o;2348:423::-;2390:3;2428:5;2422:12;2455:6;2450:3;2443:19;2480:1;2490:162;2504:6;2501:1;2498:13;2490:162;;;2566:4;2622:13;;;2618:22;;2612:29;2594:11;;;2590:20;;2583:59;2519:12;2490:162;;;2494:3;2697:1;2690:4;2681:6;2676:3;2672:16;2668:27;2661:38;2760:4;2753:2;2749:7;2744:2;2736:6;2732:15;2728:29;2723:3;2719:39;2715:50;2708:57;;;2348:423;;;;:::o;2776:808::-;3113:3;3102:9;3095:22;3076:4;3140:46;3181:3;3170:9;3166:19;3158:6;3140:46;:::i;:::-;3234:9;3226:6;3222:22;3217:2;3206:9;3202:18;3195:50;3262:33;3288:6;3280;3262:33;:::i;:::-;-1:-1:-1;;;;;3369:15:76;;;3364:2;3349:18;;3342:43;3421:15;;;3416:2;3401:18;;3394:43;-1:-1:-1;;3468:3:76;3453:19;;3446:35;;;;3518:15;;3322:3;3497:19;;3490:44;3565:3;3550:19;3543:35;;;;3254:41;2776:808;-1:-1:-1;;2776:808:76:o;3589:222::-;3654:9;;;3675:10;;;3672:133;;;3727:10;3722:3;3718:20;3715:1;3708:31;3762:4;3759:1;3752:15;3790:4;3787:1;3780:15;3672:133;3589:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"DAOFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREDAOFactory.sol\":\"OGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREDAOFactory.sol\":{\"keccak256\":\"0x5edffa876170ab79abee169335f86737ef94c0ed00bb35ecb417c6a359026e3c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9e0b002858d0f19e87c9cf53613d53e70a5b5668bfd7d56ad71b967121b0137c\",\"dweb:/ipfs/QmPx18DmbNeaynkRGawDY65zvAVec89Qbfv4jELjzqmic9\"]},\"src/interfaces/IOGREDAOFactory.sol\":{\"keccak256\":\"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e\",\"dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"DAOFactoryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"proposalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREDAOFactory.sol":"OGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREDAOFactory.sol":{"keccak256":"0x5edffa876170ab79abee169335f86737ef94c0ed00bb35ecb417c6a359026e3c","urls":["bzz-raw://9e0b002858d0f19e87c9cf53613d53e70a5b5668bfd7d56ad71b967121b0137c","dweb:/ipfs/QmPx18DmbNeaynkRGawDY65zvAVec89Qbfv4jELjzqmic9"],"license":"UNLICENSED"},"src/interfaces/IOGREDAOFactory.sol":{"keccak256":"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31","urls":["bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e","dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":57} \ No newline at end of file diff --git a/out/OGREFactory.sol/OGREFactory.json b/out/OGREFactory.sol/OGREFactory.json new file mode 100644 index 0000000..5bc4073 --- /dev/null +++ b/out/OGREFactory.sol/OGREFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"OGRE Factory Abstract Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/OGREFactory.sol\":\"OGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/OGREFactory.sol":"OGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"}},"version":1},"id":51} \ No newline at end of file diff --git a/out/OGREMarket.sol/OGREMarket.json b/out/OGREMarket.sol/OGREMarket.json new file mode 100644 index 0000000..5119e39 --- /dev/null +++ b/out/OGREMarket.sol/OGREMarket.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"admin_","type":"address","internalType":"address"},{"name":"orderFee_","type":"uint256","internalType":"uint256"},{"name":"feeRecipient_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"listedItems","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minOrderDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"orderFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orders","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","internalType":"address"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setContractAllowed","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOrderFee","inputs":[{"name":"newOrderFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AllowlistUpdated","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeRecipientUpdated","inputs":[{"name":"newFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OrderCancelled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OrderCreated","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"erc721Address","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc20Address","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFeeUpdated","inputs":[{"name":"newOrderFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFulfilled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6","sourceMap":"541:8157:44:-:0;;;1633:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:15;2061:21;;-1:-1:-1;;;;;1734:24:44;;;;1768:42;-1:-1:-1;;;;;;;;;;;1803:6:44;1768:10;:42::i;:::-;-1:-1:-1;1839:10:44;;1825:25;;-1:-1:-1;;;;;805:32:76;;;787:51;;1825:25:44;;775:2:76;760:18;1825:25:44;;;;;;;1860:22;1872:9;1860:11;:22::i;:::-;1892:30;1908:13;1892:15;:30::i;:::-;1633:343;;;;541:8157;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;2027:164:44:-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:72;2464:10:0;:16::i;:::-;2119:8:44::1;:22:::0;;;2156:28:::1;::::0;995:25:76;;;2156:28:44::1;::::0;983:2:76;968:18;2156:28:44::1;;;;;;;;2027:164:::0;;:::o;2197:293::-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:72;2464:10:0;:16::i;:::-;-1:-1:-1;;;;;2305:31:44;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:44;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:44;;1233:2:76;2297:95:44::1;::::0;::::1;1215:21:76::0;1272:2;1252:18;;;1245:30;-1:-1:-1;;;1291:18:76;;;1284:45;1346:18;;2297:95:44::1;;;;;;;;;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:44::1;-1:-1:-1::0;;;;;2402:30:44;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;787:51:76;;;2447:36:44::1;::::0;775:2:76;760:18;2447:36:44::1;641:203:76::0;3199:103:0;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;3432:197::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;1567:32:76;;3565:47:0;;;1549:51:76;1616:18;;;1609:34;;;1522:18;;3565:47:0;1375:274:76;3515:108:0;3432:197;;:::o;14:177:76:-;93:13;;-1:-1:-1;;;;;135:31:76;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:440::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;558:2;547:9;543:18;537:25;527:35;;581:49;626:2;615:9;611:18;581:49;:::i;:::-;571:59;;196:440;;;;;;;:::o;1375:274::-;541:8157:44;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c63430008140033","sourceMap":"541:8157:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:76;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;677:23:44;;;;;;;;;;;;;;;;;;;643:25:76;;;631:2;616:18;677:23:44;497:177:76;602:35:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;843:32:76;;;825:51;;813:2;798:18;602:35:44;679:203:76;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;7628:992:44;;;;;;;;;;-1:-1:-1;7628:992:44;;;;;:::i;:::-;;:::i;7377:132::-;;;;;;;;;;-1:-1:-1;7377:132:44;;;;;:::i;:::-;7438:4;7461:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7461:25:44;:41;;;7377:132;4226:136:0;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;644:27:44:-;;;;;;;;;;-1:-1:-1;644:27:44;;;;-1:-1:-1;;;;;644:27:44;;;785:48;;;;;;;;;;-1:-1:-1;785:48:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;3119:3295;;;;;;:::i;:::-;;:::i;839:46::-;;;;;;;;;;-1:-1:-1;839:46:44;;;;;:::i;:::-;;;;;;;;;;;;;;6420:509;;;;;;;;;;-1:-1:-1;6420:509:44;;;;;:::i;:::-;;:::i;2775:293::-;;;;;;;;;;-1:-1:-1;2775:293:44;;;;;:::i;:::-;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;915:47:44:-;;;;;;;;;;-1:-1:-1;915:47:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;915:47:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;2027:164:44;;;;;;;;;;-1:-1:-1;2027:164:44;;;;;:::i;:::-;;:::i;7210:161::-;;;;;;;;;;-1:-1:-1;7210:161:44;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;2197:293:44:-;;;;;;;;;;-1:-1:-1;2197:293:44;;;;;:::i;:::-;;:::i;706:31::-;;;;;;;;;;;;;;;;6982:222;;;;;;;;;;-1:-1:-1;6982:222:44;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;7628:992:44:-;7690:4;7710:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7710:25:44;7706:59;;-1:-1:-1;7760:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7706:59::-;7780:49;7797:17;;;:6;:17;;;;;;;;:31;;;-1:-1:-1;;;;;7797:31:44;7780:49;;:16;:49;;;;;;;;7775:68;;-1:-1:-1;7838:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7775:68::-;7858:48;7875:17;;;:6;:17;;;;;;;;:30;;;-1:-1:-1;;;;;7875:30:44;7858:48;;:16;:48;;;;;;;;7853:67;;-1:-1:-1;7915:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7853:67::-;7939:22;7972:17;;;:6;:17;;;;;;;:31;;;;8071:25;;8041;;;;;8018:49;;-1:-1:-1;;;8018:49:44;;;;;643:25:76;;;;-1:-1:-1;;;;;7972:31:44;;;;;8071:25;;;;;7972:31;;8018:22;;616:18:76;;8018:49:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8018:78:44;;8014:96;;-1:-1:-1;8105:5:44;;7628:992;-1:-1:-1;;7628:992:44:o;8014:96::-;8151:17;;;;:6;:17;;;;;;;:25;;;8124:53;;-1:-1:-1;;;8124:53:44;;8189:4;;-1:-1:-1;;;;;8124:26:44;;;;;:53;;;;643:25:76;;;631:2;616:18;;497:177;8124:53:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8124:70:44;;;:148;;;-1:-1:-1;8231:17:44;;;;:6;:17;;;;;;;:25;8199:73;;-1:-1:-1;;;8199:73:44;;8231:25;;;;-1:-1:-1;;;;;8231:25:44;;;8199:73;;;5574:34:76;8266:4:44;5624:18:76;;;5617:43;8199:31:44;;;;;5509:18:76;;8199:73:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8198:74;8124:148;8120:166;;;-1:-1:-1;8281:5:44;;7628:992;-1:-1:-1;;7628:992:44:o;8120:166::-;8305:20;8335:17;;;:6;:17;;;;;;;:30;;;;8433:24;;;;;8404:25;;8380:50;;-1:-1:-1;;;8380:50:44;;8335:30;8404:25;;;-1:-1:-1;;;;;8404:25:44;;;8380:50;;;825:51:76;;;;8335:30:44;;;;8380:23;;798:18:76;;8380:50:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;8376:95;;;-1:-1:-1;8466:5:44;;7628:992;-1:-1:-1;;;7628:992:44:o;8376:95::-;8553:17;;;;:6;:17;;;;;;;:24;;;;;8509:25;;8485:65;;-1:-1:-1;;;8485:65:44;;-1:-1:-1;;;;;8509:25:44;;;;;;8485:65;;;5574:34:76;;;;8544:4:44;5624:18:76;;;5617:43;8553:24:44;;8485:23;;;;;5509:18:76;;8485:65:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;8481:110;;;-1:-1:-1;8586:5:44;;7628:992;-1:-1:-1;;;7628:992:44:o;8481:110::-;-1:-1:-1;8609:4:44;;7628:992;-1:-1:-1;;;7628:992:44:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;3119:3295:44:-;2500:21:15;:19;:21::i;:::-;3304:19:44::1;3291:9;:32;;;;;;;;:::i;:::-;;:68;;;-1:-1:-1::0;3340:19:44::1;3327:9;:32;;;;;;;;:::i;:::-;;3291:68;3283:99;;;::::0;-1:-1:-1;;;3283:99:44;;6312:2:76;3283:99:44::1;::::0;::::1;6294:21:76::0;6351:2;6331:18;;;6324:30;-1:-1:-1;;;6370:18:76;;;6363:48;6428:18;;3283:99:44::1;;;;;;;;;-1:-1:-1::0;;;;;3400:31:44;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;3392:71;;;::::0;-1:-1:-1;;;3392:71:44;;6659:2:76;3392:71:44::1;::::0;::::1;6641:21:76::0;6698:2;6678:18;;;6671:30;6737:29;6717:18;;;6710:57;6784:18;;3392:71:44::1;6457:351:76::0;3392:71:44::1;-1:-1:-1::0;;;;;3481:30:44;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;3473:69;;;::::0;-1:-1:-1;;;3473:69:44;;7015:2:76;3473:69:44::1;::::0;::::1;6997:21:76::0;7054:2;7034:18;;;7027:30;7093:28;7073:18;;;7066:56;7139:18;;3473:69:44::1;6813:350:76::0;3473:69:44::1;3569:1;3560:6;:10;3552:37;;;::::0;-1:-1:-1;;;3552:37:44;;7370:2:76;3552:37:44::1;::::0;::::1;7352:21:76::0;7409:2;7389:18;;;7382:30;-1:-1:-1;;;7428:18:76;;;7421:44;7482:18;;3552:37:44::1;7168:338:76::0;3552:37:44::1;3690:17;3710:59;3724:13;3739:7;3748:12;3762:6;3710:13;:59::i;:::-;3690:79;;3779:16;3798:36;3811:13;3826:7;3798:12;:36::i;:::-;3779:55:::0;-1:-1:-1;3969:12:44;4025:13;3939:20:::1;4053:9;:32;;;;;;;;:::i;:::-;::::0;4049:599:::1;;4142:1;4109:21:::0;;;:11:::1;:21;::::0;;;;;:35;4101:79:::1;;;::::0;-1:-1:-1;;;4101:79:44;;7713:2:76;4101:79:44::1;::::0;::::1;7695:21:76::0;7752:2;7732:18;;;7725:30;7791:33;7771:18;;;7764:61;7842:18;;4101:79:44::1;7511:355:76::0;4101:79:44::1;4202:31;::::0;-1:-1:-1;;;4202:31:44;;::::1;::::0;::::1;643:25:76::0;;;4237:10:44::1;::::0;-1:-1:-1;;;;;4202:22:44;::::1;::::0;::::1;::::0;616:18:76;;4202:31:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4202:45:44::1;;4194:72;;;::::0;-1:-1:-1;;;4194:72:44;;8073:2:76;4194:72:44::1;::::0;::::1;8055:21:76::0;8112:2;8092:18;;;8085:30;-1:-1:-1;;;8131:18:76;;;8124:44;8185:18;;4194:72:44::1;7871:338:76::0;4194:72:44::1;4288:35;::::0;-1:-1:-1;;;4288:35:44;;::::1;::::0;::::1;643:25:76::0;;;4335:4:44::1;::::0;-1:-1:-1;;;;;4288:26:44;::::1;::::0;::::1;::::0;616:18:76;;4288:35:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4288:52:44::1;;:114;;;-1:-1:-1::0;4344:58:44::1;::::0;-1:-1:-1;;;4344:58:44;;4376:10:::1;4344:58;::::0;::::1;5574:34:76::0;4396:4:44::1;5624:18:76::0;;;5617:43;-1:-1:-1;;;;;4344:31:44;::::1;::::0;::::1;::::0;5509:18:76;;4344:58:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4280:139;;;::::0;-1:-1:-1;;;4280:139:44;;8416:2:76;4280:139:44::1;::::0;::::1;8398:21:76::0;8455:2;8435:18;;;8428:30;-1:-1:-1;;;8474:18:76;;;8467:42;8526:18;;4280:139:44::1;8214:336:76::0;4280:139:44::1;4049:599;;;4458:35;::::0;-1:-1:-1;;;4458:35:44;;4482:10:::1;4458:35;::::0;::::1;825:51:76::0;4497:6:44;;-1:-1:-1;;;;;4458:23:44;::::1;::::0;::::1;::::0;798:18:76;;4458:35:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4450:78;;;::::0;-1:-1:-1;;;4450:78:44;;8757:2:76;4450:78:44::1;::::0;::::1;8739:21:76::0;8796:2;8776:18;;;8769:30;-1:-1:-1;;;8815:18:76;;;8808:50;8875:18;;4450:78:44::1;8555:344:76::0;4450:78:44::1;4550:50;::::0;-1:-1:-1;;;4550:50:44;;4574:10:::1;4550:50;::::0;::::1;5574:34:76::0;4594:4:44::1;5624:18:76::0;;;5617:43;4604:6:44;;-1:-1:-1;;;;;4550:23:44;::::1;::::0;::::1;::::0;5509:18:76;;4550:50:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;4542:95;;;::::0;-1:-1:-1;;;4542:95:44;;9106:2:76;4542:95:44::1;::::0;::::1;9088:21:76::0;9145:2;9125:18;;;9118:30;-1:-1:-1;;;9164:18:76;;;9157:52;9226:18;;4542:95:44::1;8904:346:76::0;4542:95:44::1;4679:8;;4666:9;:21;4658:51;;;::::0;-1:-1:-1;;;4658:51:44;;9457:2:76;4658:51:44::1;::::0;::::1;9439:21:76::0;9496:2;9476:18;;;9469:30;-1:-1:-1;;;9515:18:76;;;9508:47;9572:18;;4658:51:44::1;9255:341:76::0;4658:51:44::1;4741:12;::::0;4766:8:::1;::::0;4741:38:::1;::::0;4720:15:::1;::::0;-1:-1:-1;;;;;4741:12:44::1;::::0;4766:8;4720:15;4741:38;4720:15;4741:38;4766:8;4741:12;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:60;;;4797:10;4789:48;;;::::0;-1:-1:-1;;;4789:48:44;;10013:2:76;4789:48:44::1;::::0;::::1;9995:21:76::0;10052:2;10032:18;;;10025:30;10091:27;10071:18;;;10064:55;10136:18;;4789:48:44::1;9811:349:76::0;4789:48:44::1;4916:3;4879:17:::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;4879:25:44::1;4875:1533;;4936:26;4965:192;;;;;;;;4996:9;4965:192;;;;;;;;:::i;:::-;::::0;;5023:10:::1;4965:192;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;4965:192:44;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;-1:-1:-1;5171:17:44;;;:6:::1;:17:::0;;;;:25;;;;4936:221;;-1:-1:-1;4936:221:44;;5171:17;;-1:-1:-1;;5171:25:44::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5171:25:44::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5171:25:44;;::::1;;;-1:-1:-1::0;;;;;;5171:25:44;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5171:25:44;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;5214:9;:32;;;;;;;;:::i;:::-;::::0;5210:104:::1;;5266:21;::::0;;;:11:::1;:21;::::0;;;;:33;;;5210:104:::1;5345:9;5332:92;5356:9;5367:10;5379:13;5394:7;5403:12;5417:6;5332:92;;;;;;;;;;;:::i;:::-;;;;;;;;4922:513;4875:1533;;;5530:9;5499:40;;;;;;;;:::i;:::-;:17;::::0;;;:6:::1;:17;::::0;;;;:27;::::1;;::::0;:40;::::1;;;;;;:::i;:::-;::::0;5491:73:::1;;;::::0;-1:-1:-1;;;5491:73:44;;10367:2:76;5491:73:44::1;::::0;::::1;10349:21:76::0;10406:2;10386:18;;;10379:30;-1:-1:-1;;;10425:18:76;;;10418:50;10485:18;;5491:73:44::1;10165:344:76::0;5491:73:44::1;5672:20;::::0;;5743:9:::1;:32;;;;;;;;:::i;:::-;::::0;5739:274:::1;;-1:-1:-1::0;;5852:17:44::1;::::0;;;:6:::1;:17;::::0;;;;:25;5810:10:::1;::::0;5852:25:::1;::::0;::::1;-1:-1:-1::0;;;;;5852:25:44::1;5739:274;;;-1:-1:-1::0;;5931:17:44::1;::::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;5931:25:44::1;5988:10;5739:274;6034:21;::::0;;;:11:::1;:21;::::0;;;;;;;6027:28;;;6076:17;;;:6:::1;:17:::0;;;;;;6069:24;;-1:-1:-1;;;;;;6069:24:44;;;-1:-1:-1;6069:24:44;::::1;::::0;;-1:-1:-1;;;;;;6069:24:44;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;6158:61;-1:-1:-1;;;6158:61:44;;-1:-1:-1;;;;;10772:15:76;;;6158:61:44;;::::1;10754:34:76::0;;;;10824:15;;;10804:18;;;10797:43;10856:18;;;10849:34;;;6158:26:44;;::::1;::::0;::::1;::::0;10689:18:76;;6158:61:44::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6285:67:44::1;::::0;-1:-1:-1;;;6285:67:44;;-1:-1:-1;;;;;10772:15:76;;;6285:67:44::1;::::0;::::1;10754:34:76::0;10824:15;;;10804:18;;;10797:43;10856:18;;;10849:34;;;6285:31:44;::::1;::::0;::::1;::::0;10689:18:76;;6285:67:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6372:25:44::1;::::0;6387:9;;-1:-1:-1;6372:25:44::1;::::0;-1:-1:-1;6372:25:44;;::::1;5441:967;;4875:1533;3273:3141;;;;;2542:20:15::0;1857:1;3068:21;;2888:208;2542:20;3119:3295:44;;;;;:::o;6420:509::-;6522:3;6485:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6485:25:44;6477:69;;;;-1:-1:-1;;;6477:69:44;;11096:2:76;6477:69:44;;;11078:21:76;11135:2;11115:18;;;11108:30;-1:-1:-1;;;11154:18:76;;;11147:45;11209:18;;6477:69:44;10894:339:76;6477:69:44;6564:17;;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6564:25:44;6593:10;6564:39;6556:69;;;;-1:-1:-1;;;6556:69:44;;11440:2:76;6556:69:44;;;11422:21:76;11479:2;11459:18;;;11452:30;-1:-1:-1;;;11498:18:76;;;11491:47;11555:18;;6556:69:44;11238:341:76;6556:69:44;6670:19;6639:17;;;:6;:17;;;;;:27;;;;:50;;;;;;;:::i;:::-;;6635:214;;6705:16;6737:17;;;:6;:17;;;;;:31;;;;6770:25;;;;;6724:72;;-1:-1:-1;;;;;6737:31:44;;6724:12;:72::i;:::-;6817:21;;;;:11;:21;;;;;6810:28;-1:-1:-1;6635:214:44;6865:17;;;;:6;:17;;;;;;6858:24;;-1:-1:-1;;;;;;6858:24:44;;;;;;;;-1:-1:-1;;;;;;6858:24:44;;;;;;;;;;;;;;;;;;;;;;;;;;;6897:25;6872:9;;6897:25;;;6420:509;:::o;2775:293::-;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2900:31:44;::::1;2892:59;;;::::0;-1:-1:-1;;;2892:59:44;;11786:2:76;2892:59:44::1;::::0;::::1;11768:21:76::0;11825:2;11805:18;;;11798:30;-1:-1:-1;;;11844:18:76;;;11837:45;11899:18;;2892:59:44::1;11584:339:76::0;2892:59:44::1;-1:-1:-1::0;;;;;2961:33:44;::::1;;::::0;;;:16:::1;:33;::::0;;;;;;;;:43;;-1:-1:-1;;2961:43:44::1;::::0;::::1;;::::0;;::::1;::::0;;;3019:42;;12096:51:76;;;12163:18;;;12156:50;3019:42:44::1;::::0;12069:18:76;3019:42:44::1;;;;;;;2775:293:::0;;;:::o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;2027:164:44:-;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;2119:8:44::1;:22:::0;;;2156:28:::1;::::0;643:25:76;;;2156:28:44::1;::::0;631:2:76;616:18;2156:28:44::1;;;;;;;;2027:164:::0;;:::o;7210:161::-;7329:34;;;-1:-1:-1;;;;;12409:32:76;;7329:34:44;;;12391:51:76;12458:18;;;12451:34;;;7293:7:44;;12364:18:76;;7329:34:44;;;;;;;;;;;;7319:45;;;;;;7312:52;;7210:161;;;;:::o;4642:138:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2197:293:44:-:0;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2305:31:44;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:44;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:44;;11786:2:76;2297:95:44::1;::::0;::::1;11768:21:76::0;11825:2;11805:18;;;11798:30;-1:-1:-1;;;11844:18:76;;;11837:45;11899:18;;2297:95:44::1;11584:339:76::0;2297:95:44::1;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:44::1;-1:-1:-1::0;;;;;2402:30:44;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;825:51:76;;;2447:36:44::1;::::0;813:2:76;798:18;2447:36:44::1;679:203:76::0;6982:222:44;7140:56;;;-1:-1:-1;;;;;12783:15:76;;;7140:56:44;;;12765:34:76;12815:18;;;12808:34;;;12878:15;;;12858:18;;;12851:43;12910:18;;;12903:34;;;7104:7:44;;12699:19:76;;7140:56:44;;;;;;;;;;;;7130:67;;;;;;7123:74;;6982:222;;;;;;:::o;3199:103:0:-;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;2575:307:15;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:15;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;12409:32:76;;3565:47:0;;;12391:51:76;12458:18;;;12451:34;;;12364:18;;3565:47:0;12217:274:76;3515:108:0;3432:197;;:::o;14:286:76:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:76;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:76:o;887:180::-;946:6;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;-1:-1:-1;1038:23:76;;887:180;-1:-1:-1;887:180:76:o;1254:131::-;-1:-1:-1;;;;;1329:31:76;;1319:42;;1309:70;;1375:1;1372;1365:12;1390:315;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1571:9;1558:23;1548:33;;1631:2;1620:9;1616:18;1603:32;1644:31;1669:5;1644:31;:::i;:::-;1694:5;1684:15;;;1390:315;;;;;:::o;1710:247::-;1769:6;1822:2;1810:9;1801:7;1797:23;1793:32;1790:52;;;1838:1;1835;1828:12;1790:52;1877:9;1864:23;1896:31;1921:5;1896:31;:::i;1962:691::-;2072:6;2080;2088;2096;2104;2157:3;2145:9;2136:7;2132:23;2128:33;2125:53;;;2174:1;2171;2164:12;2125:53;2213:9;2200:23;2252:1;2245:5;2242:12;2232:40;;2268:1;2265;2258:12;2232:40;2291:5;-1:-1:-1;2348:2:76;2333:18;;2320:32;2361:33;2320:32;2361:33;:::i;:::-;2413:7;-1:-1:-1;2467:2:76;2452:18;;2439:32;;-1:-1:-1;2523:2:76;2508:18;;2495:32;2536:33;2495:32;2536:33;:::i;:::-;1962:691;;;;-1:-1:-1;1962:691:76;;2642:3;2627:19;2614:33;;1962:691;-1:-1:-1;;1962:691:76:o;2658:118::-;2744:5;2737:13;2730:21;2723:5;2720:32;2710:60;;2766:1;2763;2756:12;2781:382;2846:6;2854;2907:2;2895:9;2886:7;2882:23;2878:32;2875:52;;;2923:1;2920;2913:12;2875:52;2962:9;2949:23;2981:31;3006:5;2981:31;:::i;:::-;3031:5;-1:-1:-1;3088:2:76;3073:18;;3060:32;3101:30;3060:32;3101:30;:::i;3168:127::-;3229:10;3224:3;3220:20;3217:1;3210:31;3260:4;3257:1;3250:15;3284:4;3281:1;3274:15;3300:766;3587:3;3572:19;;3621:1;3610:13;;3600:144;;3666:10;3661:3;3657:20;3654:1;3647:31;3701:4;3698:1;3691:15;3729:4;3726:1;3719:15;3600:144;3753:25;;;-1:-1:-1;;;;;3852:15:76;;;3847:2;3832:18;;3825:43;3904:15;;;3899:2;3884:18;;3877:43;3951:2;3936:18;;3929:34;;;;4000:15;;;3994:3;3979:19;;3972:44;3805:3;4032:19;4025:35;3300:766;:::o;4256:315::-;4324:6;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4440:9;4427:23;4459:31;4484:5;4459:31;:::i;:::-;4509:5;4561:2;4546:18;;;;4533:32;;-1:-1:-1;;;4256:315:76:o;4576:525::-;4662:6;4670;4678;4686;4739:3;4727:9;4718:7;4714:23;4710:33;4707:53;;;4756:1;4753;4746:12;4707:53;4795:9;4782:23;4814:31;4839:5;4814:31;:::i;:::-;4864:5;-1:-1:-1;4916:2:76;4901:18;;4888:32;;-1:-1:-1;4972:2:76;4957:18;;4944:32;4985:33;4944:32;4985:33;:::i;:::-;4576:525;;;;-1:-1:-1;5037:7:76;;5091:2;5076:18;5063:32;;-1:-1:-1;;4576:525:76:o;5106:251::-;5176:6;5229:2;5217:9;5208:7;5204:23;5200:32;5197:52;;;5245:1;5242;5235:12;5197:52;5277:9;5271:16;5296:31;5321:5;5296:31;:::i;5671:245::-;5738:6;5791:2;5779:9;5770:7;5766:23;5762:32;5759:52;;;5807:1;5804;5797:12;5759:52;5839:9;5833:16;5858:28;5880:5;5858:28;:::i;5921:184::-;5991:6;6044:2;6032:9;6023:7;6019:23;6015:32;6012:52;;;6060:1;6057;6050:12;6012:52;-1:-1:-1;6083:16:76;;5921:184;-1:-1:-1;5921:184:76:o","linkReferences":{},"immutableReferences":{"47984":[{"start":424,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","cancelOrder(bytes32)":"7489ec23","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","daoAddress()":"2131c68c","feeRecipient()":"46904840","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isValidOrder(bytes32)":"24fc4fbd","listedItems(bytes32)":"6c054b1d","minOrderDuration()":"ff4217f1","orderExists(bytes32)":"2cb77e9f","orderFee()":"1392fb3e","orders(bytes32)":"9c3f1e90","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setContractAllowed(address,bool)":"7965d76b","setFeeRecipient(address)":"e74b981b","setOrderFee(uint256)":"c014930f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"MarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"OrderFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"isValidOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"listedItems\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOrderDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orders\",\"outputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setContractAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"setOrderFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidOrder(bytes32)\":{\"notice\":\"Returns true if order is still valid. Non-existant orders are considered invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREMarket.sol\":\"OGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a\",\"dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"orderFee_","type":"uint256"},{"internalType":"address","name":"feeRecipient_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"bool","name":"allowed","type":"bool","indexed":false}],"type":"event","name":"AllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":false}],"type":"event","name":"FeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false}],"type":"event","name":"MarketCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true},{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"address","name":"erc721Address","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc20Address","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256","indexed":false}],"type":"event","name":"OrderFeeUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderFulfilled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"listedItems","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOrderDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orders","outputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setContractAllowed"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOrderFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"isValidOrder(bytes32)":{"notice":"Returns true if order is still valid. Non-existant orders are considered invalid."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREMarket.sol":"OGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d","urls":["bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a","dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":44} \ No newline at end of file diff --git a/out/OGREMarketFactory.sol/OGREMarketFactory.json b/out/OGREMarketFactory.sol/OGREMarketFactory.json new file mode 100644 index 0000000..cc1b97b --- /dev/null +++ b/out/OGREMarketFactory.sol/OGREMarketFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f2645dcffcce4e8ad5369b80fc5106d11d790c1a76f1937c0f7b746099076eb559060200160405180910390a161211c806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610162565b61007e565b6040516001600160a01b03909116815260200161004a565b5f80858585856040516100909061013a565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101ac565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a195945050505050565b611f15806101d283390190565b80356001600160a01b038116811461015d575f80fd5b919050565b5f805f8060808587031215610175575f80fd5b61017e85610147565b935061018c60208601610147565b9250604085013591506101a160608601610147565b905092959194509250565b808201808211156101cb57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a2646970667358221220cb4e3a6e691b53e04e67eb2732e22a8d54ade597e752b5e3270522c108b11f8c64736f6c63430008140033","sourceMap":"179:544:58:-:0;;;298:68;;;;;;;;;-1:-1:-1;327:32:58;;348:10;160:51:76;;327:32:58;;148:2:76;133:18;327:32:58;;;;;;;179:544;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610162565b61007e565b6040516001600160a01b03909116815260200161004a565b5f80858585856040516100909061013a565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101ac565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a195945050505050565b611f15806101d283390190565b80356001600160a01b038116811461015d575f80fd5b919050565b5f805f8060808587031215610175575f80fd5b61017e85610147565b935061018c60208601610147565b9250604085013591506101a160608601610147565b905092959194509250565b808201808211156101cb57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a2646970667358221220cb4e3a6e691b53e04e67eb2732e22a8d54ade597e752b5e3270522c108b11f8c64736f6c63430008140033","sourceMap":"179:544:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;372:349:58;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;946:32:76;;;928:51;;916:2;901:18;372:349:58;782:203:76;372:349:58;490:7;509:14;541:10;553:5;560:8;570:12;526:57;;;;;:::i;:::-;-1:-1:-1;;;;;1277:15:76;;;1259:34;;1329:15;;;1324:2;1309:18;;1302:43;1376:2;1361:18;;1354:34;;;;1424:15;;;1419:2;1404:18;;1397:43;1208:3;1193:19;526:57:58;;;;;;;;;;;;;;;;;;;;;;;509:74;;612:1;593:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;628:57:58;;;-1:-1:-1;;;;;1936:15:76;;1918:34;;667:4:58;1983:2:76;1968:18;;1961:43;674:10:58;2020:18:76;;;2013:43;628:57:58;;;;;;;1868:2:76;628:57:58;;;710:3;372:349;-1:-1:-1;;;;;372:349:58:o;-1:-1:-1:-;;;;;;;;:::o;196:173:76:-;264:20;;-1:-1:-1;;;;;313:31:76;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:403::-;460:6;468;476;484;537:3;525:9;516:7;512:23;508:33;505:53;;;554:1;551;544:12;505:53;577:29;596:9;577:29;:::i;:::-;567:39;;625:38;659:2;648:9;644:18;625:38;:::i;:::-;615:48;;710:2;699:9;695:18;682:32;672:42;;733:38;767:2;756:9;752:18;733:38;:::i;:::-;723:48;;374:403;;;;;;;:::o;1451:222::-;1516:9;;;1537:10;;;1534:133;;;1589:10;1584:3;1580:20;1577:1;1570:31;1624:4;1621:1;1614:15;1652:4;1649:1;1642:15;1534:133;1451:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"MarketFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREMarketFactory.sol\":\"OGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a\",\"dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREMarketFactory.sol\":{\"keccak256\":\"0xce7efcfca15f1383c6231f3e72ec5fc7051df256e0d8c98b2b0889521f2cc38d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a07248cba97efd3e2a0d17406dd14bf7b6e94111563a7188f93c60c37888341\",\"dweb:/ipfs/QmY2yi83BcN6JoM8JsBKK2J7efySrj844TKemkT3imNt5Q\"]},\"src/interfaces/IOGREMarketFactory.sol\":{\"keccak256\":\"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35\",\"dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"MarketFactoryCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREMarketFactory.sol":"OGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d","urls":["bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a","dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREMarketFactory.sol":{"keccak256":"0xce7efcfca15f1383c6231f3e72ec5fc7051df256e0d8c98b2b0889521f2cc38d","urls":["bzz-raw://9a07248cba97efd3e2a0d17406dd14bf7b6e94111563a7188f93c60c37888341","dweb:/ipfs/QmY2yi83BcN6JoM8JsBKK2J7efySrj844TKemkT3imNt5Q"],"license":"UNLICENSED"},"src/interfaces/IOGREMarketFactory.sol":{"keccak256":"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0","urls":["bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35","dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":58} \ No newline at end of file diff --git a/out/OGREProposal.sol/OGREProposal.json b/out/OGREProposal.sol/OGREProposal.json new file mode 100644 index 0000000..e9f171f --- /dev/null +++ b/out/OGREProposal.sol/OGREProposal.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"proposalTitle_","type":"string","internalType":"string"},{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelProposal","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"vote","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureProposal","inputs":[{"name":"isRevotable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeAction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revotable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProposalTitle","inputs":[{"name":"newProposalTitle","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newStartTime","type":"uint256","internalType":"uint256"},{"name":"newEndTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"voteTotals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"direction","type":"uint8","internalType":"uint8"},{"name":"voted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalResults","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StatusUpdated","inputs":[{"name":"newStatus","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"vote","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"InvalidStatus","inputs":[{"name":"currentStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"},{"name":"requiredStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033","sourceMap":"319:6986:45:-:0;;;2650:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2737:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1693:51:76;1666:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2841:13:45::1;:30;2857:14:::0;2841:13;:30:::1;:::i;:::-;-1:-1:-1::0;;;;;;2881:24:45;::::1;;::::0;2921:25:::1;::::0;::::1;::::0;::::1;::::0;4546:2:76;4528:21;;;4585:1;4565:18;;;4558:29;-1:-1:-1;;;4618:2:76;4603:18;;4596:38;4666:2;4651:18;;4344:331;2921:25:45::1;;;;;;;;2650:303:::0;;;319:6986;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:76;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1214::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:76;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:76;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1487:49;1532:2;1521:9;1517:18;1487:49;:::i;:::-;1477:59;;328:1214;;;;;:::o;1755:380::-;1834:1;1830:12;;;;1877;;;1898:61;;1952:4;1944:6;1940:17;1930:27;;1898:61;2005:2;1997:6;1994:14;1974:18;1971:38;1968:161;;2051:10;2046:3;2042:20;2039:1;2032:31;2086:4;2083:1;2076:15;2114:4;2111:1;2104:15;1968:161;;1755:380;;;:::o;2266:545::-;2368:2;2363:3;2360:11;2357:448;;;2404:1;2429:5;2425:2;2418:17;2474:4;2470:2;2460:19;2544:2;2532:10;2528:19;2525:1;2521:27;2515:4;2511:38;2580:4;2568:10;2565:20;2562:47;;;-1:-1:-1;2603:4:76;2562:47;2658:2;2653:3;2649:12;2646:1;2642:20;2636:4;2632:31;2622:41;;2713:82;2731:2;2724:5;2721:13;2713:82;;;2776:17;;;2757:1;2746:13;2713:82;;;2717:3;;;2357:448;2266:545;;;:::o;2987:1352::-;3107:10;;-1:-1:-1;;;;;3129:30:76;;3126:56;;;3162:18;;:::i;:::-;3191:97;3281:6;3241:38;3273:4;3267:11;3241:38;:::i;:::-;3235:4;3191:97;:::i;:::-;3343:4;;3407:2;3396:14;;3424:1;3419:663;;;;4126:1;4143:6;4140:89;;;-1:-1:-1;4195:19:76;;;4189:26;4140:89;-1:-1:-1;;2944:1:76;2940:11;;;2936:24;2932:29;2922:40;2968:1;2964:11;;;2919:57;4242:81;;3389:944;;3419:663;2213:1;2206:14;;;2250:4;2237:18;;-1:-1:-1;;3455:20:76;;;3573:236;3587:7;3584:1;3581:14;3573:236;;;3676:19;;;3670:26;3655:42;;3768:27;;;;3736:1;3724:14;;;;3603:19;;3573:236;;;3577:3;3837:6;3828:7;3825:19;3822:201;;;3898:19;;;3892:26;-1:-1:-1;;3981:1:76;3977:14;;;3993:3;3973:24;3969:37;3965:42;3950:58;3935:74;;3822:201;-1:-1:-1;;;;;4069:1:76;4053:14;;;4049:22;4036:36;;-1:-1:-1;2987:1352:76:o;4344:331::-;319:6986:45;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033","sourceMap":"319:6986:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:344;;;;;;:::i;:::-;;:::i;:::-;;1059:21;;;;;-1:-1:-1;;;1059:21:45;;;;;;;;;527:14:76;;520:22;502:41;;490:2;475:18;1059:21:45;;;;;;;;1124:34;;;;;;;;;;;;;;;;:::i;858:35::-;;;;;;;;-1:-1:-1;;;;;1321:32:76;;;1303:51;;1291:2;1276:18;858:35:45;1157:203:76;4081:348:45;;;;;;:::i;:::-;;:::i;1407:22::-;;;;;;;;;1764:25:76;;;1752:2;1737:18;1407:22:45;1618:177:76;5435:83:45;;;:::i;5037:326::-;;;;;;:::i;:::-;;:::i;6184:1118::-;;;;;;:::i;:::-;;:::i;3181:172::-;;;;;;:::i;:::-;;:::i;:::-;;;4405:4:76;4393:17;;;4375:36;;4363:2;4348:18;3181:172:45;4233:184:76;4837:114:45;;;;;;:::i;:::-;;:::i;1539:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4985:4:76;4973:17;;;4955:36;;5034:14;;5027:22;5022:2;5007:18;;5000:50;4928:18;1539:45:45;4791:265:76;2959:94:45;3032:7;:14;2959:94;;2293:101:2;;;:::i;1337:24:45:-;;;;;;1473:28;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;3471:254:45;;;:::i;5679:335::-;;;;;;:::i;:::-;;:::i;3059:116::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4576:136::-;;;;;;:::i;:::-;;:::i;1266:24::-;;;;;;1086:27;;;:::i;:::-;;;;;;;:::i;3359:106::-;;;;;;:::i;:::-;3415:4;3438:14;;;:5;:14;;;;;:20;;;;;;;3359:106;2543:215:2;;;;;;:::i;:::-;;:::i;3731:344:45:-;459:10;-1:-1:-1;;;;;473:10:45;459:24;;451:55;;;;-1:-1:-1;;;451:55:45;;7205:2:76;451:55:45;;;7187:21:76;7244:2;7224:18;;;7217:30;-1:-1:-1;;;7263:18:76;;;7256:48;7321:18;;451:55:45;;;;;;;;;4058:9:::1;4037:31;;;;;;;;;;:::i;:::-;4028:6;:40:::0;;-1:-1:-1;;4028:40:45::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;;;;3731:344:::0;:::o;4081:348::-;459:10;-1:-1:-1;;;;;473:10:45;459:24;;451:55;;;;-1:-1:-1;;;451:55:45;;7205:2:76;451:55:45;;;7187:21:76;7244:2;7224:18;;;7217:30;-1:-1:-1;;;7263:18:76;;;7256:48;7321:18;;451:55:45;7003:342:76;451:55:45;4413:9:::1;4390:7;4398:5;4390:14;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;:32;;;;4081:348:::0;;:::o;5435:83::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5498:7:::2;:13;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;5498:13:45;;;;;::::2;;::::0;;-1:-1:-1;;;;;;5498:13:45::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;;;;;;;;;5435:83::o:0;5037:326::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5286:43:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;5286:43:45;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;-1:-1:-1;5286:43:45;;;;;;5339:7:::2;:17:::0;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;5339:17:45::2;::::0;;;::::2;;::::0;;;;;;;;;5286:43;;;;5339:17;;;;;::::2;::::0;;::::2;:::i;:::-;-1:-1:-1::0;5339:17:45::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;::::2;:::i;:::-;;;;;;;;;;;;5154:209;5037:326:::0;;;;:::o;6184:1118::-;6416:29;6406:6;;;;:39;;;;;;;;:::i;:::-;;6398:65;;;;-1:-1:-1;;;6398:65:45;;12112:2:76;6398:65:45;;;12094:21:76;12151:2;12131:18;;;12124:30;-1:-1:-1;;;12170:18:76;;;12163:43;12223:18;;6398:65:45;11910:337:76;6398:65:45;6481:54;;-1:-1:-1;;;6481:54:45;;;;;12426:25:76;;;6524:10:45;12467:18:76;;;12460:60;6490:10:45;-1:-1:-1;;;;;6481:33:45;;;;12399:18:76;;6481:54:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6473:89;;;;-1:-1:-1;;;6473:89:45;;12983:2:76;6473:89:45;;;12965:21:76;13022:2;13002:18;;;12995:30;-1:-1:-1;;;13041:18:76;;;13034:52;13103:18;;6473:89:45;12781:346:76;6473:89:45;6588:1;6580:4;:9;;;;6572:73;;;;-1:-1:-1;;;6572:73:45;;13334:2:76;6572:73:45;;;13316:21:76;13373:2;13353:18;;;13346:30;13412:34;13392:18;;;13385:62;-1:-1:-1;;;13463:18:76;;;13456:49;13522:19;;6572:73:45;13132:415:76;6572:73:45;6682:9;;6663:15;:28;;6655:65;;;;-1:-1:-1;;;6655:65:45;;13754:2:76;6655:65:45;;;13736:21:76;13793:2;13773:18;;;13766:30;13832:26;13812:18;;;13805:54;13876:18;;6655:65:45;13552:348:76;6655:65:45;6757:7;;6738:15;:26;;6730:62;;;;-1:-1:-1;;;6730:62:45;;14107:2:76;6730:62:45;;;14089:21:76;14146:2;14126:18;;;14119:30;14185:25;14165:18;;;14158:53;14228:18;;6730:62:45;13905:347:76;6730:62:45;6842:14;;;;:5;:14;;;;;:20;;;;;;6837:329;;6891:1;6878:9;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;6926:1:45;;-1:-1:-1;6906:10:45;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6837:329:45;;-1:-1:-1;6837:329:45;;6988:9;;-1:-1:-1;;;6988:9:45;;;;6980:47;;;;-1:-1:-1;;;6980:47:45;;14721:2:76;6980:47:45;;;14703:21:76;14760:2;14740:18;;;14733:30;14799:27;14779:18;;;14772:55;14844:18;;6980:47:45;14519:349:76;6980:47:45;7052:14;;;;:5;:14;;;;;:24;7081:1;;7041:10;;7052:24;;7041:36;;;;;;;:::i;:::-;;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;7137:1:45;;-1:-1:-1;7117:10:45;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6837:329:45;7176:14;;;;:5;:14;;;;;;;;;:31;;;;;;-1:-1:-1;;7217:27:45;;;;;;;;;7260:35;;7269:10;15204:51:76;;15271:18;;;15264:34;;;15314:18;;;15307:45;7260:35:45;;;;;;;15192:2:76;7260:35:45;;;6184:1118;;:::o;3181:172::-;3236:5;3261:14;;;:5;:14;;;;;:20;;;;;;3253:52;;;;-1:-1:-1;;;3253:52:45;;15565:2:76;3253:52:45;;;15547:21:76;15604:2;15584:18;;;15577:30;-1:-1:-1;;;15623:18:76;;;15616:49;15682:18;;3253:52:45;15363:343:76;3253:52:45;-1:-1:-1;3322:14:45;;;;:5;:14;;;;;:24;;;;3181:172::o;4837:114::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;4921:9:::2;:23:::0;;;::::2;;-1:-1:-1::0;;;4921:23:45::2;-1:-1:-1::0;;;;4921:23:45;;::::2;::::0;;;::::2;::::0;;4837:114::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1473:28:45:-;;;;;;;;;;;;;;;-1:-1:-1;1473:28:45;:::o;3471:254::-;1531:13:2;:11;:13::i;:::-;3538:29:45::1;3528:6;::::0;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;;3524:104;;3590:6;::::0;3576:52:::1;::::0;-1:-1:-1;;;3576:52:45;;::::1;::::0;3590:6:::1;;::::0;::::1;::::0;3576:52:::1;;;:::i;3524:104::-;3638:6;:39:::0;;-1:-1:-1;;3638:39:45::1;3647:30;3638:39;::::0;;3692:26:::1;::::0;;16250:2:76;16232:21;;;16289:1;16269:18;;;16262:29;-1:-1:-1;;;16307:18:76;;;16300:39;3692:26:45;;::::1;::::0;16371:2:76;3692:26:45;;;;;;::::1;3471:254::o:0;5679:335::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5809:15:::2;5793:12;:31;;5785:76;;;::::0;-1:-1:-1;;;5785:76:45;;16587:2:76;5785:76:45::2;::::0;::::2;16569:21:76::0;;;16606:18;;;16599:30;16665:34;16645:18;;;16638:62;16717:18;;5785:76:45::2;16385:356:76::0;5785:76:45::2;5892:12;5879:10;:25;5871:71;;;::::0;-1:-1:-1;;;5871:71:45;;16948:2:76;5871:71:45::2;::::0;::::2;16930:21:76::0;16987:2;16967:18;;;16960:30;17026:34;17006:18;;;16999:62;-1:-1:-1;;;17077:18:76;;;17070:31;17118:19;;5871:71:45::2;16746:397:76::0;5871:71:45::2;5953:9;:24:::0;;;;5987:7:::2;:20:::0;5679:335::o;3059:116::-;3114:21;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3114:21:45;3154:7;3162:5;3154:14;;;;;;;;:::i;:::-;;;;;;;;;;;3147:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3147:21:45;-1:-1:-1;;;;;3147:21:45;-1:-1:-1;;;;;3147:21:45;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3059:116;;;:::o;4576:136::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;4673:13:::2;:32;4689:16:::0;4673:13;:32:::2;:::i;:::-;;4576:136:::0;:::o;1086:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1303:51:76::0;1276:18;;2672:31:2::1;1157:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1303:51:76;1276:18;;1901:40:2;1157:203:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:156:76:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:182::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;324:27;341:9;324:27;:::i;:::-;314:37;175:182;-1:-1:-1;;;175:182:76:o;554:127::-;615:10;610:3;606:20;603:1;596:31;646:4;643:1;636:15;670:4;667:1;660:15;686:242;772:1;765:5;762:12;752:143;;817:10;812:3;808:20;805:1;798:31;852:4;849:1;842:15;880:4;877:1;870:15;752:143;904:18;;686:242::o;933:219::-;1085:2;1070:18;;1097:49;1074:9;1128:6;1097:49;:::i;:::-;933:219;;;;:::o;1365:248::-;1433:6;1441;1494:2;1482:9;1473:7;1469:23;1465:32;1462:52;;;1510:1;1507;1500:12;1462:52;-1:-1:-1;;1533:23:76;;;1603:2;1588:18;;;1575:32;;-1:-1:-1;1365:248:76:o;1800:173::-;1868:20;;-1:-1:-1;;;;;1917:31:76;;1907:42;;1897:70;;1963:1;1960;1953:12;1978:127;2039:10;2034:3;2030:20;2027:1;2020:31;2070:4;2067:1;2060:15;2094:4;2091:1;2084:15;2110:632;2175:5;2205:18;2246:2;2238:6;2235:14;2232:40;;;2252:18;;:::i;:::-;2327:2;2321:9;2295:2;2381:15;;-1:-1:-1;;2377:24:76;;;2403:2;2373:33;2369:42;2357:55;;;2427:18;;;2447:22;;;2424:46;2421:72;;;2473:18;;:::i;:::-;2513:10;2509:2;2502:22;2542:6;2533:15;;2572:6;2564;2557:22;2612:3;2603:6;2598:3;2594:16;2591:25;2588:45;;;2629:1;2626;2619:12;2588:45;2679:6;2674:3;2667:4;2659:6;2655:17;2642:44;2734:1;2727:4;2718:6;2710;2706:19;2702:30;2695:41;;;;2110:632;;;;;:::o;2747:222::-;2790:5;2843:3;2836:4;2828:6;2824:17;2820:27;2810:55;;2861:1;2858;2851:12;2810:55;2883:80;2959:3;2950:6;2937:20;2930:4;2922:6;2918:17;2883:80;:::i;2974:814::-;3079:6;3087;3095;3103;3156:3;3144:9;3135:7;3131:23;3127:33;3124:53;;;3173:1;3170;3163:12;3124:53;3196:29;3215:9;3196:29;:::i;:::-;3186:39;;3272:2;3261:9;3257:18;3244:32;3234:42;;3327:2;3316:9;3312:18;3299:32;3350:18;3391:2;3383:6;3380:14;3377:34;;;3407:1;3404;3397:12;3377:34;3430:50;3472:7;3463:6;3452:9;3448:22;3430:50;:::i;:::-;3420:60;;3533:2;3522:9;3518:18;3505:32;3489:48;;3562:2;3552:8;3549:16;3546:36;;;3578:1;3575;3568:12;3546:36;-1:-1:-1;3601:24:76;;3656:4;3648:13;;3644:27;-1:-1:-1;3634:55:76;;3685:1;3682;3675:12;3634:55;3708:74;3774:7;3769:2;3756:16;3751:2;3747;3743:11;3708:74;:::i;:::-;3698:84;;;2974:814;;;;;;;:::o;3793:250::-;3859:6;3867;3920:2;3908:9;3899:7;3895:23;3891:32;3888:52;;;3936:1;3933;3926:12;3888:52;3972:9;3959:23;3949:33;;4001:36;4033:2;4022:9;4018:18;4001:36;:::i;:::-;3991:46;;3793:250;;;;;:::o;4048:180::-;4107:6;4160:2;4148:9;4139:7;4135:23;4131:32;4128:52;;;4176:1;4173;4166:12;4128:52;-1:-1:-1;4199:23:76;;4048:180;-1:-1:-1;4048:180:76:o;4422:118::-;4508:5;4501:13;4494:21;4487:5;4484:32;4474:60;;4530:1;4527;4520:12;4545:241;4601:6;4654:2;4642:9;4633:7;4629:23;4625:32;4622:52;;;4670:1;4667;4660:12;4622:52;4709:9;4696:23;4728:28;4750:5;4728:28;:::i;5061:423::-;5103:3;5141:5;5135:12;5168:6;5163:3;5156:19;5193:1;5203:162;5217:6;5214:1;5211:13;5203:162;;;5279:4;5335:13;;;5331:22;;5325:29;5307:11;;;5303:20;;5296:59;5232:12;5203:162;;;5207:3;5410:1;5403:4;5394:6;5389:3;5385:16;5381:27;5374:38;5473:4;5466:2;5462:7;5457:2;5449:6;5445:15;5441:29;5436:3;5432:39;5428:50;5421:57;;;5061:423;;;;:::o;5489:766::-;5668:2;5657:9;5650:21;5743:1;5739;5734:3;5730:11;5726:19;5717:6;5711:13;5707:39;5702:2;5691:9;5687:18;5680:67;5801:2;5793:6;5789:15;5783:22;5778:2;5767:9;5763:18;5756:50;5631:4;5853:2;5845:6;5841:15;5835:22;5893:4;5888:2;5877:9;5873:18;5866:32;5921:52;5968:3;5957:9;5953:19;5939:12;5921:52;:::i;:::-;5907:66;;6022:2;6014:6;6010:15;6004:22;6095:2;6091:7;6079:9;6071:6;6067:22;6063:36;6057:3;6046:9;6042:19;6035:65;6123:41;6157:6;6141:14;6123:41;:::i;:::-;6109:55;;;6220:3;6212:6;6208:16;6202:23;6195:4;6184:9;6180:20;6173:53;6243:6;6235:14;;;5489:766;;;;:::o;6260:322::-;6329:6;6382:2;6370:9;6361:7;6357:23;6353:32;6350:52;;;6398:1;6395;6388:12;6350:52;6438:9;6425:23;6471:18;6463:6;6460:30;6457:50;;;6503:1;6500;6493:12;6457:50;6526;6568:7;6559:6;6548:9;6544:22;6526:50;:::i;:::-;6516:60;6260:322;-1:-1:-1;;;;6260:322:76:o;6587:220::-;6736:2;6725:9;6718:21;6699:4;6756:45;6797:2;6786:9;6782:18;6774:6;6756:45;:::i;6812:186::-;6871:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:52;;;6940:1;6937;6930:12;6892:52;6963:29;6982:9;6963:29;:::i;7350:127::-;7411:10;7406:3;7402:20;7399:1;7392:31;7442:4;7439:1;7432:15;7466:4;7463:1;7456:15;7482:347;7684:2;7666:21;;;7723:2;7703:18;;;7696:30;7762:25;7757:2;7742:18;;7735:53;7820:2;7805:18;;7482:347::o;7834:127::-;7895:10;7890:3;7886:20;7883:1;7876:31;7926:4;7923:1;7916:15;7950:4;7947:1;7940:15;7966:380;8045:1;8041:12;;;;8088;;;8109:61;;8163:4;8155:6;8151:17;8141:27;;8109:61;8216:2;8208:6;8205:14;8185:18;8182:38;8179:161;;8262:10;8257:3;8253:20;8250:1;8243:31;8297:4;8294:1;8287:15;8325:4;8322:1;8315:15;8179:161;;7966:380;;;:::o;8477:545::-;8579:2;8574:3;8571:11;8568:448;;;8615:1;8640:5;8636:2;8629:17;8685:4;8681:2;8671:19;8755:2;8743:10;8739:19;8736:1;8732:27;8726:4;8722:38;8791:4;8779:10;8776:20;8773:47;;;-1:-1:-1;8814:4:76;8773:47;8869:2;8864:3;8860:12;8857:1;8853:20;8847:4;8843:31;8833:41;;8924:82;8942:2;8935:5;8932:13;8924:82;;;8987:17;;;8968:1;8957:13;8924:82;;;8928:3;;;8568:448;8477:545;;;:::o;9198:1352::-;9324:3;9318:10;9351:18;9343:6;9340:30;9337:56;;;9373:18;;:::i;:::-;9402:97;9492:6;9452:38;9484:4;9478:11;9452:38;:::i;:::-;9446:4;9402:97;:::i;:::-;9554:4;;9618:2;9607:14;;9635:1;9630:663;;;;10337:1;10354:6;10351:89;;;-1:-1:-1;10406:19:76;;;10400:26;10351:89;-1:-1:-1;;9155:1:76;9151:11;;;9147:24;9143:29;9133:40;9179:1;9175:11;;;9130:57;10453:81;;9600:944;;9630:663;8424:1;8417:14;;;8461:4;8448:18;;-1:-1:-1;;9666:20:76;;;9784:236;9798:7;9795:1;9792:14;9784:236;;;9887:19;;;9881:26;9866:42;;9979:27;;;;9947:1;9935:14;;;;9814:19;;9784:236;;;9788:3;10048:6;10039:7;10036:19;10033:201;;;10109:19;;;10103:26;-1:-1:-1;;10192:1:76;10188:14;;;10204:3;10184:24;10180:37;10176:42;10161:58;10146:74;;10033:201;-1:-1:-1;;;;;10280:1:76;10264:14;;;10260:22;10247:36;;-1:-1:-1;9198:1352:76:o;12531:245::-;12598:6;12651:2;12639:9;12630:7;12626:23;12622:32;12619:52;;;12667:1;12664;12657:12;12619:52;12699:9;12693:16;12718:28;12740:5;12718:28;:::i;14257:127::-;14318:10;14313:3;14309:20;14306:1;14299:31;14349:4;14346:1;14339:15;14373:4;14370:1;14363:15;14389:125;14454:9;;;14475:10;;;14472:36;;;14488:18;;:::i;14873:128::-;14940:9;;;14961:11;;;14958:37;;;14975:18;;:::i;15711:332::-;15909:2;15894:18;;15921:49;15898:9;15952:6;15921:49;:::i;:::-;15979:58;16033:2;16022:9;16018:18;16010:6;15979:58;:::i","linkReferences":{},"immutableReferences":{"48798":[{"start":461,"length":32},{"start":968,"length":32},{"start":1139,"length":32},{"start":1850,"length":32}]}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","cancelProposal()":"9070577f","castVote(uint256,uint8)":"56781388","configureProposal(bool)":"5b4d2f85","daoAddress()":"2131c68c","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","getVote(uint256)":"5a55c1f0","hasVoted(uint256)":"ecca031f","owner()":"8da5cb5b","proposalTitle()":"e5045752","removeAction()":"421e4444","renounceOwnership()":"715018a6","revotable()":"0c8ba758","setActionReady(uint256,uint256)":"280b0c87","setProposalTitle(string)":"baceec7a","setVotingPeriod(uint256,uint256)":"a15a36c7","startTime()":"78e97925","status()":"200d2ed2","transferOwnership(address)":"f2fde38b","updateStatus(uint8)":"0b3af7f9","voteCount()":"c6384071","voteTotals(uint256)":"814a1d8e","votes(uint256)":"5df81330"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"currentStatus\",\"type\":\"uint8\"},{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"requiredStatus\",\"type\":\"uint8\"}],\"name\":\"InvalidStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalResults\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newStatus\",\"type\":\"string\"}],\"name\":\"StatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isRevotable\",\"type\":\"bool\"}],\"name\":\"configureProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getVote\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newProposalTitle\",\"type\":\"string\"}],\"name\":\"setProposalTitle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newEndTime\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"direction\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"StatusUpdated(string)\":{\"params\":{\"newStatus\":\"new status of proposal\"}},\"VoteCast(address,uint256,uint8)\":{\"params\":{\"tokenId\":\"id of nft token granting vote\",\"vote\":\"direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN)\",\"voter\":\"address that cast the vote\"}}},\"kind\":\"dev\",\"methods\":{\"addAction(address,uint256,string,bytes)\":{\"details\":\"pushes a new action to the end of the actions queue\"},\"castVote(uint256,uint8)\":{\"details\":\"casts a vote\",\"params\":{\"tokenId\":\"id of token casting votes\",\"vote\":\"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)\"}},\"configureProposal(bool)\":{\"details\":\"configures proposal settings\",\"params\":{\"isRevotable\":\"allows revoting on proposal if true\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeAction()\":{\"details\":\"removes action at end of action queue\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProposalTitle(string)\":{\"details\":\"sets proposal title\",\"params\":{\"newProposalTitle\":\"new proposal title\"}},\"setVotingPeriod(uint256,uint256)\":{\"details\":\"sets voting start and end time\",\"params\":{\"newEndTime\":\"time voting will end\",\"newStartTime\":\"time voting will start\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Proposal Contract\",\"version\":1},\"userdoc\":{\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"StatusUpdated(string)\":{\"notice\":\"logs a change in proposal status.\"},\"VoteCast(address,uint256,uint8)\":{\"notice\":\"logs a vote\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREProposal.sol\":\"OGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957\",\"dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"proposalTitle_","type":"string"},{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Enums.ProposalStatus","name":"currentStatus","type":"uint8"},{"internalType":"enum Enums.ProposalStatus","name":"requiredStatus","type":"uint8"}],"type":"error","name":"InvalidStatus"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalResults","anonymous":false},{"inputs":[{"internalType":"string","name":"newStatus","type":"string","indexed":false}],"type":"event","name":"StatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint8","name":"vote","type":"uint8","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint8","name":"vote","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[{"internalType":"bool","name":"isRevotable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"configureProposal"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVote","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"removeAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"revotable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[{"internalType":"string","name":"newProposalTitle","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setProposalTitle"},{"inputs":[{"internalType":"uint256","name":"newStartTime","type":"uint256"},{"internalType":"uint256","name":"newEndTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[],"stateMutability":"view","type":"function","name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"uint8","name":"direction","type":"uint8"},{"internalType":"bool","name":"voted","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addAction(address,uint256,string,bytes)":{"details":"pushes a new action to the end of the actions queue"},"castVote(uint256,uint8)":{"details":"casts a vote","params":{"tokenId":"id of token casting votes","vote":"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)"}},"configureProposal(bool)":{"details":"configures proposal settings","params":{"isRevotable":"allows revoting on proposal if true"}},"owner()":{"details":"Returns the address of the current owner."},"removeAction()":{"details":"removes action at end of action queue"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setProposalTitle(string)":{"details":"sets proposal title","params":{"newProposalTitle":"new proposal title"}},"setVotingPeriod(uint256,uint256)":{"details":"sets voting start and end time","params":{"newEndTime":"time voting will end","newStartTime":"time voting will start"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREProposal.sol":"OGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af","urls":["bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957","dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":45} \ No newline at end of file diff --git a/out/OGREProposalFactory.sol/OGREProposalFactory.json b/out/OGREProposalFactory.sol/OGREProposalFactory.json new file mode 100644 index 0000000..15d5d48 --- /dev/null +++ b/out/OGREProposalFactory.sol/OGREProposalFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f35d71b99bdb343ca2dd2814592bbf63b5a379cf9b151185dcd862a0199dd87539060200160405180910390a1611d03806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015a565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011e565b61009b93929190610225565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c8919061028a565b9091555050604080516001600160a01b03838116825230602083015285168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b611a1e806102b083390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610155575f80fd5b919050565b5f805f6060848603121561016c575f80fd5b833567ffffffffffffffff80821115610183575f80fd5b818601915086601f830112610196575f80fd5b8135818111156101a8576101a861012b565b604051601f8201601f19908116603f011681019083821181831017156101d0576101d061012b565b816040528281528960208487010111156101e8575f80fd5b826020860160208301375f60208483010152809750505050505061020e6020850161013f565b915061021c6040850161013f565b90509250925092565b606081525f84518060608401525f5b818110156102515760208188018101516080868401015201610234565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a957634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033a264697066735822122095049eb3085d5cc282cc93d7a9ed4ad65e5cf0eba7171b288cc6597226eb5ec864736f6c63430008140033","sourceMap":"183:520:59:-:0;;;308:70;;;;;;;;;-1:-1:-1;337:34:59;;360:10;160:51:76;;337:34:59;;148:2:76;133:18;337:34:59;;;;;;;183:520;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015a565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011e565b61009b93929190610225565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c8919061028a565b9091555050604080516001600160a01b03838116825230602083015285168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b611a1e806102b083390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610155575f80fd5b919050565b5f805f6060848603121561016c575f80fd5b833567ffffffffffffffff80821115610183575f80fd5b818601915086601f830112610196575f80fd5b8135818111156101a8576101a861012b565b604051601f8201601f19908116603f011681019083821181831017156101d0576101d061012b565b816040528281528960208487010111156101e8575f80fd5b826020860160208301375f60208483010152809750505050505061020e6020850161013f565b915061021c6040850161013f565b90509250925092565b606081525f84518060608401525f5b818110156102515760208188018101516080868401015201610234565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a957634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033a264697066735822122095049eb3085d5cc282cc93d7a9ed4ad65e5cf0eba7171b288cc6597226eb5ec864736f6c63430008140033","sourceMap":"183:520:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;384:317:59;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1755:32:76;;;1737:51;;1725:2;1710:18;384:317:59;1591:203:76;384:317:59;485:7;504:17;541:5;548:10;560:5;524:42;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;504:62;;595:1;576:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;611:53:59;;;-1:-1:-1;;;;;3023:15:76;;;3005:34;;651:4:59;3070:2:76;3055:18;;3048:43;3127:15;;3107:18;;;3100:43;611:53:59;;;;;;;2955:2:76;611:53:59;;;689:4;384:317;-1:-1:-1;;;;384:317:59:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:173;396:20;;-1:-1:-1;;;;;445:31:76;;435:42;;425:70;;491:1;488;481:12;425:70;328:173;;;:::o;506:1080::-;593:6;601;609;662:2;650:9;641:7;637:23;633:32;630:52;;;678:1;675;668:12;630:52;718:9;705:23;747:18;788:2;780:6;777:14;774:34;;;804:1;801;794:12;774:34;842:6;831:9;827:22;817:32;;887:7;880:4;876:2;872:13;868:27;858:55;;909:1;906;899:12;858:55;945:2;932:16;967:2;963;960:10;957:36;;;973:18;;:::i;:::-;1048:2;1042:9;1016:2;1102:13;;-1:-1:-1;;1098:22:76;;;1122:2;1094:31;1090:40;1078:53;;;1146:18;;;1166:22;;;1143:46;1140:72;;;1192:18;;:::i;:::-;1232:10;1228:2;1221:22;1267:2;1259:6;1252:18;1309:7;1302:4;1297:2;1293;1289:11;1285:22;1282:35;1279:55;;;1330:1;1327;1320:12;1279:55;1390:2;1383:4;1379:2;1375:13;1368:4;1360:6;1356:17;1343:50;1437:1;1430:4;1425:2;1417:6;1413:15;1409:26;1402:37;1458:6;1448:16;;;;;;;1483:40;1517:4;1506:9;1502:20;1483:40;:::i;:::-;1473:50;;1542:38;1576:2;1565:9;1561:18;1542:38;:::i;:::-;1532:48;;506:1080;;;;;:::o;1799:734::-;2004:2;1993:9;1986:21;1967:4;2036:6;2030:13;2079:6;2074:2;2063:9;2059:18;2052:34;2104:1;2114:145;2128:6;2125:1;2122:13;2114:145;;;2242:4;2226:14;;;2222:25;;2216:32;2210:3;2191:17;;;2187:27;2180:69;2143:12;2114:145;;;-1:-1:-1;2309:1:76;2303:3;2279:22;;;2275:32;;2268:43;;;;-1:-1:-1;;;;;2459:15:76;;;2452:4;2437:20;;2430:45;2511:15;;;;2506:2;2491:18;;2484:43;-1:-1:-1;2372:2:76;2351:15;;;-1:-1:-1;;2347:29:76;2332:45;;;2328:55;;;-1:-1:-1;1799:734:76:o;2538:222::-;2603:9;;;2624:10;;;2621:133;;;2676:10;2671:3;2667:20;2664:1;2657:31;2711:4;2708:1;2701:15;2739:4;2736:1;2729:15;2621:133;2538:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREProposalFactory.sol\":\"OGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957\",\"dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREProposalFactory.sol\":{\"keccak256\":\"0xb0360433434b5b516e2b29edb16838220b51298dd0d592ef22ab23bc278be949\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bda1e817fc16f8d2f8b4925a15d1f4daa083d8a943e77758c619500c449d2132\",\"dweb:/ipfs/QmSxH84JHtTVSJh7LMqjC9KVjPExgFWLPqMMvDBcdqvamW\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalFactoryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREProposalFactory.sol":"OGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af","urls":["bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957","dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREProposalFactory.sol":{"keccak256":"0xb0360433434b5b516e2b29edb16838220b51298dd0d592ef22ab23bc278be949","urls":["bzz-raw://bda1e817fc16f8d2f8b4925a15d1f4daa083d8a943e77758c619500c449d2132","dweb:/ipfs/QmSxH84JHtTVSJh7LMqjC9KVjPExgFWLPqMMvDBcdqvamW"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":59} \ No newline at end of file diff --git a/out/OGRETest.t.sol/OGRETest.json b/out/OGRETest.t.sol/OGRETest.json new file mode 100644 index 0000000..aa38879 --- /dev/null +++ b/out/OGRETest.t.sol/OGRETest.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"dao","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OGREDAO"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testExample","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601f8054909116909117905534801561002c575f80fd5b50613dd88061003a5f395ff3fe608060405234801562000010575f80fd5b506004361062000104575f3560e01c806366d9a9a0116200009f578063b5508aa9116200006b578063b5508aa914620001f4578063ba414fa614620001fe578063e20c9f711462000219578063fa7626d41462000223575f80fd5b806366d9a9a0146200019f57806385226c8114620001b8578063916a17c614620001d1578063b0464fdc14620001ea575f80fd5b80633e5e3c2311620000df5780633e5e3c23146200014f5780633f5a4a2a14620001595780633f7286f414620001635780634162169f146200016d575f80fd5b80630a9254e414620001085780631ed7831c14620001145780632ade38801462000136575b5f80fd5b6200011262000231565b005b6200011e620002fc565b6040516200012d919062000bcf565b60405180910390f35b620001406200035e565b6040516200012d919062000c62565b6200011e620004a6565b6200011262000506565b6200011e62000514565b601f54620001869061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016200012d565b620001a962000574565b6040516200012d919062000d6c565b620001c2620006e4565b6040516200012d919062000df5565b620001db620007b9565b6040516200012d919062000e59565b620001db6200089e565b620001c262000983565b6200020862000a58565b60405190151581526020016200012d565b6200011e62000afc565b601f54620002089060ff1681565b30306001306101f4604051620002479062000bc1565b60e0808252600890820181905267546573744e616d6560c01b6101008301526101206020830181905282015267546573744d65746160c01b6101408201526001600160a01b0395861660408201529385166060850152608084019290925290921660a082015260c081019190915261016001604051809103905ff080158015620002d3573d5f803e3d5ffd5b50601f60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000335575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000485578382905f5260205f20018054620003f39062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620004219062000eca565b8015620004705780601f10620004465761010080835404028352916020019162000470565b820191905f5260205f20905b8154815290600101906020018083116200045257829003601f168201915b505050505081526020019060010190620003d3565b50505050815250508152602001906001019062000381565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b62000512600162000b5c565b565b606060178054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f2090600202016040518060400160405290815f82018054620005ca9062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620005f89062000eca565b8015620006475780601f106200061d5761010080835404028352916020019162000647565b820191905f5260205f20905b8154815290600101906020018083116200062957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015620006cb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200068c5790505b5050505050815250508152602001906001019062000597565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620007279062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620007559062000eca565b8015620007a45780601f106200077a57610100808354040283529160200191620007a4565b820191905f5260205f20905b8154815290600101906020018083116200078657829003601f168201915b50505050508152602001906001019062000707565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200088557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620008465790505b50505050508152505081526020019060010190620007dc565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200096a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200092b5790505b50505050508152505081526020019060010190620008c1565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620009c69062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620009f49062000eca565b801562000a435780601f1062000a195761010080835404028352916020019162000a43565b820191905f5260205f20905b81548152906001019060200180831162000a2557829003601f168201915b505050505081526020019060010190620009a6565b6008545f9060ff161562000a70575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa15801562000acf573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af5919062000f04565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b604051630c9fd58160e01b81528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562000ba7575f80fd5b505afa15801562000bba573d5f803e3d5ffd5b5050505050565b612e868062000f1d83390190565b602080825282518282018190525f9190848201906040850190845b8181101562000c115783516001600160a01b03168352928401929184019160010162000bea565b50909695505050505050565b5f81518084525f5b8181101562000c435760208185018101518683018201520162000c25565b505f602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190525f919060409081850190600581811b8701840188860187805b8581101562000d1757603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101562000d0057605f1989850301835262000ced84865162000c1d565b948e01949350918d019160010162000cce565b505050978a01979450509188019160010162000c88565b50919a9950505050505050505050565b5f8151808452602080850194508084015f5b8381101562000d615781516001600160e01b0319168752958201959082019060010162000d39565b509495945050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f190185528151805187855262000db88886018262000c1d565b91890151858303868b015291905062000dd2818362000d27565b96890196945050509086019060010162000d91565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562000e4c57603f1988860301845262000e3985835162000c1d565b9450928501929085019060010162000e1a565b5092979650505050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f19018552815180516001600160a01b0316845287015187840187905262000eb68785018262000d27565b958801959350509086019060010162000e7e565b600181811c9082168062000edf57607f821691505b60208210810362000efe57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562000f15575f80fd5b505191905056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa26469706673582212204bc4463225e0e6bc9ee1d438d609286f7778949f0ea70045ec6c3f346f8293c864736f6c63430008140033","sourceMap":"124:263:75:-:0;;;3126:44:24;;;3166:4;-1:-1:-1;;3126:44:24;;;;;;;;1016:26:34;;;;;;;;;;;124:263:75;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000104575f3560e01c806366d9a9a0116200009f578063b5508aa9116200006b578063b5508aa914620001f4578063ba414fa614620001fe578063e20c9f711462000219578063fa7626d41462000223575f80fd5b806366d9a9a0146200019f57806385226c8114620001b8578063916a17c614620001d1578063b0464fdc14620001ea575f80fd5b80633e5e3c2311620000df5780633e5e3c23146200014f5780633f5a4a2a14620001595780633f7286f414620001635780634162169f146200016d575f80fd5b80630a9254e414620001085780631ed7831c14620001145780632ade38801462000136575b5f80fd5b6200011262000231565b005b6200011e620002fc565b6040516200012d919062000bcf565b60405180910390f35b620001406200035e565b6040516200012d919062000c62565b6200011e620004a6565b6200011262000506565b6200011e62000514565b601f54620001869061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016200012d565b620001a962000574565b6040516200012d919062000d6c565b620001c2620006e4565b6040516200012d919062000df5565b620001db620007b9565b6040516200012d919062000e59565b620001db6200089e565b620001c262000983565b6200020862000a58565b60405190151581526020016200012d565b6200011e62000afc565b601f54620002089060ff1681565b30306001306101f4604051620002479062000bc1565b60e0808252600890820181905267546573744e616d6560c01b6101008301526101206020830181905282015267546573744d65746160c01b6101408201526001600160a01b0395861660408201529385166060850152608084019290925290921660a082015260c081019190915261016001604051809103905ff080158015620002d3573d5f803e3d5ffd5b50601f60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000335575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000485578382905f5260205f20018054620003f39062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620004219062000eca565b8015620004705780601f10620004465761010080835404028352916020019162000470565b820191905f5260205f20905b8154815290600101906020018083116200045257829003601f168201915b505050505081526020019060010190620003d3565b50505050815250508152602001906001019062000381565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b62000512600162000b5c565b565b606060178054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f2090600202016040518060400160405290815f82018054620005ca9062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620005f89062000eca565b8015620006475780601f106200061d5761010080835404028352916020019162000647565b820191905f5260205f20905b8154815290600101906020018083116200062957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015620006cb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200068c5790505b5050505050815250508152602001906001019062000597565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620007279062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620007559062000eca565b8015620007a45780601f106200077a57610100808354040283529160200191620007a4565b820191905f5260205f20905b8154815290600101906020018083116200078657829003601f168201915b50505050508152602001906001019062000707565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200088557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620008465790505b50505050508152505081526020019060010190620007dc565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200096a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200092b5790505b50505050508152505081526020019060010190620008c1565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620009c69062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620009f49062000eca565b801562000a435780601f1062000a195761010080835404028352916020019162000a43565b820191905f5260205f20905b81548152906001019060200180831162000a2557829003601f168201915b505050505081526020019060010190620009a6565b6008545f9060ff161562000a70575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa15801562000acf573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af5919062000f04565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b604051630c9fd58160e01b81528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562000ba7575f80fd5b505afa15801562000bba573d5f803e3d5ffd5b5050505050565b612e868062000f1d83390190565b602080825282518282018190525f9190848201906040850190845b8181101562000c115783516001600160a01b03168352928401929184019160010162000bea565b50909695505050505050565b5f81518084525f5b8181101562000c435760208185018101518683018201520162000c25565b505f602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190525f919060409081850190600581811b8701840188860187805b8581101562000d1757603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101562000d0057605f1989850301835262000ced84865162000c1d565b948e01949350918d019160010162000cce565b505050978a01979450509188019160010162000c88565b50919a9950505050505050505050565b5f8151808452602080850194508084015f5b8381101562000d615781516001600160e01b0319168752958201959082019060010162000d39565b509495945050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f190185528151805187855262000db88886018262000c1d565b91890151858303868b015291905062000dd2818362000d27565b96890196945050509086019060010162000d91565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562000e4c57603f1988860301845262000e3985835162000c1d565b9450928501929085019060010162000e1a565b5092979650505050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f19018552815180516001600160a01b0316845287015187840187905262000eb68785018262000d27565b958801959350509086019060010162000e7e565b600181811c9082168062000edf57607f821691505b60208210810362000efe57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562000f15575f80fd5b505191905056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa26469706673582212204bc4463225e0e6bc9ee1d438d609286f7778949f0ea70045ec6c3f346f8293c864736f6c63430008140033","sourceMap":"124:263:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;181:135;;;:::i;:::-;;2907:134:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3823:151;;;:::i;:::-;;;;;;;:::i;3684:133::-;;;:::i;322:63:75:-;;;:::i;3385:141:27:-;;;:::i;156:18:75:-;;;;;;;;-1:-1:-1;;;;;156:18:75;;;;;;-1:-1:-1;;;;;3043:32:76;;;3025:51;;3013:2;2998:18;156::75;2854:228:76;3193:186:27;;;:::i;:::-;;;;;;;:::i;3047:140::-;;;:::i;:::-;;;;;;;:::i;3532:146::-;;;:::i;:::-;;;;;;;:::i;2754:147::-;;;:::i;2459:141::-;;;:::i;1243:204:23:-;;;:::i;:::-;;;6798:14:76;;6791:22;6773:41;;6761:2;6746:18;1243:204:23;6633:187:76;2606:142:27;;;:::i;1016:26:34:-;;;;;;;;;181:135:75;265:4;280;287:1;298:4;305:3;221:88;;;;;:::i;:::-;7286:3:76;7268:22;;;7327:1;7306:19;;;7299:30;;;-1:-1:-1;;;7360:3:76;7345:19;;7338:39;7396:3;7430:4;7415:20;;7408:32;;;7456:18;;7449:29;-1:-1:-1;;;7509:3:76;7494:19;;7487:39;-1:-1:-1;;;;;7636:15:76;;;7631:2;7616:18;;7609:43;7688:15;;;7683:2;7668:18;;7661:43;-1:-1:-1;7720:19:76;;7713:35;;;;7785:15;;;-1:-1:-1;7764:19:76;;7757:44;-1:-1:-1;7817:19:76;;7810:35;;;;7558:3;7543:19;221:88:75;;;;;;;;;;;;;;;;;;;;;;;215:3;;:94;;;;;-1:-1:-1;;;;;215:94:75;;;;;-1:-1:-1;;;;;215:94:75;;;;;;181:135::o;2907:134:27:-;2954:33;3018:16;2999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:35:27;;;;;;;;;;;;;;;;;;;;;;;2907:134;:::o;3823:151::-;3872:42;3948:19;3926:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3926:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:151;:::o;3684:133::-;3730:33;3794:16;3775:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3775:35:27;;;;;;;;;;;;;;;;;;;;;;3684:133;:::o;322:63:75:-;362:16;373:4;362:10;:16::i;:::-;322:63::o;3385:141:27:-;3433:35;3501:18;3480:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3480:39:27;;;;;;;;;;;;;;;;;;;;;;3385:141;:::o;3193:186::-;3249:56;3346:26;3317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3317:55:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3047:140;3095:34;3162:18;3141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:146;3580:40;3653:18;3632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:147;2803:40;2876:18;2855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:141;2508:34;2575:18;2554:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:23;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:23;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:23;;:7;:39;;;8415:51:76;;;-1:-1:-1;;;8482:18:76;;;8475:34;1428:1:23;;1377:7;;8388:18:76;;1377:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2606:142:27:-;2655:35;2723:18;2702:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2702:39:27;;;;;;;;;;;;;;;;;;;;;;2606:142;:::o;1594:89:23:-;1657:19;;-1:-1:-1;;;1657:19:23;;6798:14:76;;6791:22;1657:19:23;;;6773:41:76;1657:13:23;;;;6746:18:76;;1657:19:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;-1:-1:-1:-;;;;;;;;:::o;14:658:76:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:195;465:6;462:1;459:13;451:195;;;530:13;;-1:-1:-1;;;;;526:39:76;514:52;;621:15;;;;586:12;;;;562:1;480:9;451:195;;;-1:-1:-1;663:3:76;;14:658;-1:-1:-1;;;;;;14:658:76:o;677:423::-;719:3;757:5;751:12;784:6;779:3;772:19;809:1;819:162;833:6;830:1;827:13;819:162;;;895:4;951:13;;;947:22;;941:29;923:11;;;919:20;;912:59;848:12;819:162;;;823:3;1026:1;1019:4;1010:6;1005:3;1001:16;997:27;990:38;1089:4;1082:2;1078:7;1073:2;1065:6;1061:15;1057:29;1052:3;1048:39;1044:50;1037:57;;;677:423;;;;:::o;1105:1744::-;1340:2;1392:21;;;1462:13;;1365:18;;;1484:22;;;1311:4;;1340:2;1525;;1543:18;;;;1580:1;1623:15;;;1608:31;;1604:40;;1667:15;;;1311:4;;1731:1089;1747:6;1742:3;1739:15;1731:1089;;;-1:-1:-1;;1816:22:76;;;1812:36;1800:49;;1872:13;;1959:9;;-1:-1:-1;;;;;1955:35:76;1940:51;;2030:11;;2024:18;2062:15;;;2055:27;;;2143:19;;1912:15;;;2175:24;;;2356:21;;;;2222:2;2304:17;;;2292:30;;2288:39;;;2246:15;;;;2401:1;2415:296;2431:8;2426:3;2423:17;2415:296;;;2537:2;2533:7;2524:6;2516;2512:19;2508:33;2501:5;2494:48;2569:42;2604:6;2593:8;2587:15;2569:42;:::i;:::-;2640:17;;;;2559:52;-1:-1:-1;2683:14:76;;;;2459:1;2450:11;2415:296;;;-1:-1:-1;;;2798:12:76;;;;2734:6;-1:-1:-1;;2763:15:76;;;;1773:1;1764:11;1731:1089;;;-1:-1:-1;2837:6:76;;1105:1744;-1:-1:-1;;;;;;;;;;1105:1744:76:o;3087:461::-;3139:3;3177:5;3171:12;3204:6;3199:3;3192:19;3230:4;3259:2;3254:3;3250:12;3243:19;;3296:2;3289:5;3285:14;3317:1;3327:196;3341:6;3338:1;3335:13;3327:196;;;3406:13;;-1:-1:-1;;;;;;3402:40:76;3390:53;;3463:12;;;;3498:15;;;;3363:1;3356:9;3327:196;;;-1:-1:-1;3539:3:76;;3087:461;-1:-1:-1;;;;;3087:461:76:o;3553:1187::-;3773:4;3802:2;3842;3831:9;3827:18;3872:2;3861:9;3854:21;3895:6;3930;3924:13;3961:6;3953;3946:22;3987:2;3977:12;;4020:2;4009:9;4005:18;3998:25;;4082:2;4072:6;4069:1;4065:14;4054:9;4050:30;4046:39;4120:2;4112:6;4108:15;4141:1;4151:560;4165:6;4162:1;4159:13;4151:560;;;4230:22;;;-1:-1:-1;;4226:36:76;4214:49;;4286:13;;4332:9;;4354:18;;;4399:48;4431:15;;;4332:9;4399:48;:::i;:::-;4488:11;;;4482:18;4537:19;;;4520:15;;;4513:44;4482:18;4385:62;-1:-1:-1;4580:51:76;4385:62;4482:18;4580:51;:::i;:::-;4689:12;;;;4570:61;-1:-1:-1;;;4654:15:76;;;;4187:1;4180:9;4151:560;;;-1:-1:-1;4728:6:76;;3553:1187;-1:-1:-1;;;;;;;;3553:1187:76:o;4745:803::-;4907:4;4936:2;4976;4965:9;4961:18;5006:2;4995:9;4988:21;5029:6;5064;5058:13;5095:6;5087;5080:22;5133:2;5122:9;5118:18;5111:25;;5195:2;5185:6;5182:1;5178:14;5167:9;5163:30;5159:39;5145:53;;5233:2;5225:6;5221:15;5254:1;5264:255;5278:6;5275:1;5272:13;5264:255;;;5371:2;5367:7;5355:9;5347:6;5343:22;5339:36;5334:3;5327:49;5399:40;5432:6;5423;5417:13;5399:40;:::i;:::-;5389:50;-1:-1:-1;5497:12:76;;;;5462:15;;;;5300:1;5293:9;5264:255;;;-1:-1:-1;5536:6:76;;4745:803;-1:-1:-1;;;;;;;4745:803:76:o;5553:1075::-;5757:4;5786:2;5826;5815:9;5811:18;5856:2;5845:9;5838:21;5879:6;5914;5908:13;5945:6;5937;5930:22;5971:2;5961:12;;6004:2;5993:9;5989:18;5982:25;;6066:2;6056:6;6053:1;6049:14;6038:9;6034:30;6030:39;6104:2;6096:6;6092:15;6125:1;6135:464;6149:6;6146:1;6143:13;6135:464;;;6214:22;;;-1:-1:-1;;6210:36:76;6198:49;;6270:13;;6315:9;;-1:-1:-1;;;;;6311:35:76;6296:51;;6386:11;;6380:18;6418:15;;;6411:27;;;6461:58;6503:15;;;6380:18;6461:58;:::i;:::-;6577:12;;;;6451:68;-1:-1:-1;;6542:15:76;;;;6171:1;6164:9;6135:464;;7856:380;7935:1;7931:12;;;;7978;;;7999:61;;8053:4;8045:6;8041:17;8031:27;;7999:61;8106:2;8098:6;8095:14;8075:18;8072:38;8069:161;;8152:10;8147:3;8143:20;8140:1;8133:31;8187:4;8184:1;8177:15;8215:4;8212:1;8205:15;8069:161;;7856:380;;;:::o;8520:184::-;8590:6;8643:2;8631:9;8622:7;8618:23;8614:32;8611:52;;;8659:1;8656;8649:12;8611:52;-1:-1:-1;8682:16:76;;8520:184;-1:-1:-1;8520:184:76:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","dao()":"4162169f","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testExample()":"3f5a4a2a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dao\",\"outputs\":[{\"internalType\":\"contract OGREDAO\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testExample\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/OGRETest.t.sol\":\"OGRETest\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]},\"test/OGRETest.t.sol\":{\"keccak256\":\"0x0bc538d4c702286d6f76620b09ed73ce7dad239c89b7caa0708b0103aada352c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://48fd6094f6105e5314fc6d0fd9b91d7da144d9820c11691cd42bd728b7ad4d45\",\"dweb:/ipfs/QmdY9RWKoBsK81HVfoNoSckS4ULv4qGNEigufjiy1bQZd8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dao","outputs":[{"internalType":"contract OGREDAO","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testExample"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/OGRETest.t.sol":"OGRETest"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"},"test/OGRETest.t.sol":{"keccak256":"0x0bc538d4c702286d6f76620b09ed73ce7dad239c89b7caa0708b0103aada352c","urls":["bzz-raw://48fd6094f6105e5314fc6d0fd9b91d7da144d9820c11691cd42bd728b7ad4d45","dweb:/ipfs/QmdY9RWKoBsK81HVfoNoSckS4ULv4qGNEigufjiy1bQZd8"],"license":"UNLICENSED"}},"version":1},"id":75} \ No newline at end of file diff --git a/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json b/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json new file mode 100644 index 0000000..7eba2b8 --- /dev/null +++ b/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"erc721FactoryAddress_","type":"address","internalType":"address"},{"name":"treasuryContractAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelTokenizedOrder","inputs":[{"name":"listingTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createTokenizedOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offer","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"request","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"fulfillTokenizedOrder","inputs":[{"name":"fulfillmentTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fulfillmentTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"listingTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"listings","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offered","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"requested","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","internalType":"uint256"},{"name":"fulfillmentTokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"matchTokenizedOrder","inputs":[{"name":"listingTokenIdA","type":"uint256","internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint256","internalType":"uint256"},{"name":"autofill","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"matches","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"listingTokenIdA","type":"uint256","internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","internalType":"uint256"},{"name":"expiration","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"treasuryContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"TokenizedMarketCreated","inputs":[{"name":"erc721Factory","type":"address","indexed":false,"internalType":"address"},{"name":"listingTokenContract","type":"address","indexed":false,"internalType":"address"},{"name":"fulfillmentTokenContract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenizedOrderCreated","inputs":[{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offer","type":"tuple","indexed":false,"internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"request","type":"tuple","indexed":false,"internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"listingTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenizedOrderFulfilled","inputs":[{"name":"fulfillmentTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fulfiller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenizedOrderMatched","inputs":[{"name":"listingTokenIdA","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fulfillmentTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"expiration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"matcher","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801562000010575f80fd5b50604051620026e7380380620026e7833981016040819052620000339162000254565b6001600160a01b0381811660c09081526040516377b24c1360e11b815260606004820152602260648201527f4f475245546f6b656e697a65644d61726b6574204c697374696e6720546f6b656084820152616e7360f01b60a48201526024810191909152600760c4820152664c495354494e4760c81b60e4820152306044820152839182169063ef64982690610104016020604051808303815f875af1158015620000e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200010691906200028a565b6001600160a01b039081166080526040516377b24c1360e11b815260606004820152602660648201527f4f475245546f6b656e697a65644d61726b65742046756c66696c6c6d656e7420608482015265546f6b656e7360d01b60a482015260c06024820152600760c4820152661195531192531360ca1b60e48201523060448201529082169063ef64982690610104016020604051808303815f875af1158015620001b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d991906200028a565b6001600160a01b0390811660a0819052608051604080518785168152919093166020820152918201527f088f49341c928c39e2d02c39f829b4cd859dd236c6e034efd02fb7db5ce741ee9060600160405180910390a1505050620002ad565b80516001600160a01b03811681146200024f575f80fd5b919050565b5f806040838503121562000266575f80fd5b620002718362000238565b9150620002816020840162000238565b90509250929050565b5f602082840312156200029b575f80fd5b620002a68262000238565b9392505050565b60805160a05160c0516123b4620003335f395f818161013501528181610c5801528181611d550152611dc601525f81816102210152818161026501528181610879015261169401525f81816101be015281816105d80152818161066b0152818161090b0152818161098701528181610e14015281816118150152611f2501526123b45ff3fe608060405260043610610084575f3560e01c8063daa5dc2a11610057578063daa5dc2a1461016f578063dca764951461018e578063dce74418146101ad578063de74e57b146101e0578063fab7920214610210575f80fd5b8063031e6c34146100885780634768d4ef146100a957806365b8f69214610103578063be1343e614610124575b5f80fd5b348015610093575f80fd5b506100a76100a23660046120b7565b610243565b005b3480156100b4575f80fd5b506100e36100c33660046120b7565b60036020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101166101113660046120de565b610df9565b6040519081526020016100fa565b34801561012f575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100fa565b34801561017a575f80fd5b506100a76101893660046120b7565b6117f3565b348015610199575f80fd5b506101166101a83660046121a9565b6118d8565b3480156101b8575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb575f80fd5b506101ff6101fa3660046120b7565b611fd2565b6040516100fa959493929190612253565b34801561021b575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce9190612290565b6001600160a01b0316146103345760405162461bcd60e51b815260206004820152602260248201527f73656e646572206e6f742066756c66696c6c6d656e7420746f6b656e206f776e60448201526132b960f11b60648201526084015b60405180910390fd5b5f828152600360208181526040808420815160608101835281548082526001830154828601526002928301548285015286529252808420815160a08101909252805492949391929091839160ff1690811115610392576103926121f9565b60038111156103a3576103a36121f9565b81526040805160608101909152600183810180546020909401939091839160ff16908111156103d4576103d46121f9565b60018111156103e5576103e56121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561043b5761043b6121f9565b600181111561044c5761044c6121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401548382015260069093015491810191909152848201515f9081526002909252808220815160a0810190925280549394509192909190829060ff1660038111156104c5576104c56121f9565b60038111156104d6576104d66121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610507576105076121f9565b6001811115610518576105186121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561056e5761056e6121f9565b600181111561057f5761057f6121f9565b81526020015f820160019054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152505081526020016005820154815260200160068201548152505090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e855f01516040518263ffffffff1660e01b815260040161062791815260200190565b602060405180830381865afa158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190612290565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e86602001516040518263ffffffff1660e01b81526004016106bb91815260200190565b602060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612290565b905060035f8881526020019081526020015f205f8082015f9055600182015f9055600282015f9055505060025f865f015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f9055505060025f866020015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f905550507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166342966c686001546040518263ffffffff1660e01b81526004016108c791815260200190565b5f604051808303815f87803b1580156108de575f80fd5b505af11580156108f0573d5f803e3d5ffd5b50508651604051630852cd8d60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610956575f80fd5b505af1158015610968573d5f803e3d5ffd5b5050506020860151604051630852cd8d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506342966c68916109bf9160040190815260200190565b5f604051808303815f87803b1580156109d6575f80fd5b505af11580156109e8573d5f803e3d5ffd5b505f92506109f4915050565b84516003811115610a0757610a076121f9565b03610b0f5760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610a4a9130918791906004016122b2565b6020604051808303815f875af1158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a91906122d6565b5060408084015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610ac99130918691906004016122b2565b6020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0991906122d6565b50610df0565b600184516003811115610b2457610b246121f9565b03610c185760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610b679130918791906004016122b2565b6020604051808303815f875af1158015610b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba791906122d6565b506040808401516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610be69130918691906004016122b2565b5f604051808303815f87803b158015610bfd575f80fd5b505af1158015610c0f573d5f803e3d5ffd5b50505050610df0565b600284516003811115610c2d57610c2d6121f9565b03610d0057602080850151908101516040918201519151635b95647560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b72ac8ea92610c8e928692906004016122b2565b5f604051808303815f87803b158015610ca5575f80fd5b505af1158015610cb7573d5f803e3d5ffd5b50505060208085015190810151604091820151915163a9059cbb60e01b81526001600160a01b03868116600483015260248201939093529116915063a9059cbb90604401610ac9565b600384516003811115610d1557610d156121f9565b03610df0576040808501516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610d589130918791906004016122b2565b5f604051808303815f87803b158015610d6f575f80fd5b505af1158015610d81573d5f803e3d5ffd5b5050506040808501516020810151908201519151632142170760e11b81526001600160a01b0390911692506342842e0e91610dc291309186916004016122b2565b5f604051808303815f87803b158015610dd9575f80fd5b505af1158015610deb573d5f803e3d5ffd5b505050505b50505050505050565b5f84815260026020526040808220815160a0810190925280547f00000000000000000000000000000000000000000000000000000000000000009284929091829060ff166003811115610e4e57610e4e6121f9565b6003811115610e5f57610e5f6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610e9057610e906121f9565b6001811115610ea157610ea16121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115610ef757610ef76121f9565b6001811115610f0857610f086121f9565b8152815461010090046001600160a01b0316602080830191909152600190920154604091820152918352600584015483820152600690930154918101919091525f8981526002909252808220815160a0810190925280549394509192909190829060ff166003811115610f7d57610f7d6121f9565b6003811115610f8e57610f8e6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610fbf57610fbf6121f9565b6001811115610fd057610fd06121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115611026576110266121f9565b6001811115611037576110376121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401549083015260069092015491015290505f61108087426122f1565b905082608001515f146110d55760405162461bcd60e51b815260206004820152601760248201527f6f72646572206120616c7265616479206d617463686564000000000000000000604482015260640161032b565b6080820151156111275760405162461bcd60e51b815260206004820152601760248201527f6f72646572206220616c7265616479206d617463686564000000000000000000604482015260640161032b565b428360600151116111705760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818481a185cc8195e1c1a5c9959606a1b604482015260640161032b565b428260600151116111b95760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818881a185cc8195e1c1a5c9959606a1b604482015260640161032b565b808360600151116112185760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526272206160e81b606482015260840161032b565b808260600151116112775760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526239103160e91b606482015260840161032b565b5f8351600381111561128b5761128b6121f9565b036112f6575f825160038111156112a4576112a46121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682031000000000000604482015260640161032b565b61146a565b60018351600381111561130b5761130b6121f9565b0361137257600282516003811115611325576113256121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682032000000000000604482015260640161032b565b600283516003811115611387576113876121f9565b036113ee576001825160038111156113a1576113a16121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682033000000000000604482015260640161032b565b600383516003811115611403576114036121f9565b0361146a5760038251600381111561141d5761141d6121f9565b1461146a5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682034000000000000604482015260640161032b565b8160400151602001516001600160a01b03168360200151602001516001600160a01b0316146114ef5760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a34ba341037b93232b9103160a91b606482015260840161032b565b8260400151602001516001600160a01b03168260200151602001516001600160a01b0316146115745760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a697468206f72646572206160a81b606482015260840161032b565b816040015160400151836020015160400151146115e95760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c103bb4ba341037b93232b9103160991b606482015260840161032b565b8260400151604001518260200151604001511461165e5760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c2077697468206f72646572206160981b606482015260840161032b565b6001805f82825461166f91906122f1565b90915550506001546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b5050505060015460025f8b81526020019081526020015f206006018190555060015460025f8a81526020019081526020015f20600601819055505f60405180606001604052808b81526020018a81526020018381525090508060035f60015481526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050507f24142722f1b2336f069f0fb228e80e81a454234dd7344d63db12e4e156a725f68a8a60015485336040516117da9594939291909485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405180910390a1505060015498975050505050505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187e9190612290565b6001600160a01b0316146118d45760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206c697374696e6720746f6b656e206f776e65720000604482015260640161032b565b5050565b5f60015f808282546118ea91906122f1565b925050819055505f6040518060a0016040528087600381111561190f5761190f6121f9565b815260208082018890526040808301889052606083018790525f60809093018390528254835260029091529020815181549293508392829060ff1916600183600381111561195f5761195f6121f9565b02179055506020820151805160018084018054909291839160ff191690838181111561198d5761198d6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560409182015160019182015590830151805160038401805492939092839160ff199091169083818111156119ee576119ee6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155606082015160058201556080909101516006909101555f85516001811115611a4f57611a4f6121f9565b03611c5c575f856040015111611aa75760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f74206f66666572207a65726f20657263323020746f6b656e730000604482015260640161032b565b60208501516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611aef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b139190612316565b905085602001516001600160a01b03166323b872dd333089604001516040518463ffffffff1660e01b8152600401611b4d939291906122b2565b6020604051808303815f875af1158015611b69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122d6565b506040860151611b9d90826122f1565b60208701516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190612316565b14611c565760405162461bcd60e51b815260206004820152601960248201527f657263323020746f6b656e73206e6f7420726563656976656400000000000000604482015260640161032b565b50611f06565b600185516001811115611c7157611c716121f9565b03611ebe57602085015160408087015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce99190612290565b6001600160a01b031614611d3f5760405162461bcd60e51b815260206004820152601760248201527f73656e646572206e6f7420657263373231206f776e6572000000000000000000604482015260640161032b565b84602001516001600160a01b03166323b872dd337f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401611d97939291906122b2565b5f604051808303815f87803b158015611dae575f80fd5b505af1158015611dc0573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685602001516001600160a01b0316636352211e87604001516040518263ffffffff1660e01b8152600401611e2491815260200190565b602060405180830381865afa158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e639190612290565b6001600160a01b031614611eb95760405162461bcd60e51b815260206004820152601960248201527f65726337323120746f6b656e206e6f7420726563656976656400000000000000604482015260640161032b565b611f06565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206974656d207479706520696e206f66666572000000000000604482015260640161032b565b5f546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b158015611f6e575f80fd5b505af1158015611f80573d5f803e3d5ffd5b505050507f07f0d8a8500bb0556bb8f8eb2d27a5cedefe472dd0e4703b5711cdac02f1a9c986868686335f54604051611fbe9695949392919061232d565b60405180910390a150505f54949350505050565b60026020525f90815260409081902080548251606081019093526001808301805460ff93841695939192849290911690811115612011576120116121f9565b6001811115612022576120226121f9565b8152815461010090046001600160a01b0316602082015260019182015460409182015280516060810190915260038401805493949391929091839160ff90911690811115612072576120726121f9565b6001811115612083576120836121f9565b8152815461010090046001600160a01b03166020820152600190910154604090910152600582015460069092015490919085565b5f602082840312156120c7575f80fd5b5035919050565b80151581146120db575f80fd5b50565b5f805f80608085870312156120f1575f80fd5b8435935060208501359250604085013591506060850135612111816120ce565b939692955090935050565b6001600160a01b03811681146120db575f80fd5b5f60608284031215612140575f80fd5b6040516060810181811067ffffffffffffffff8211171561216f57634e487b7160e01b5f52604160045260245ffd5b604052905080823560028110612183575f80fd5b815260208301356121938161211c565b6020820152604092830135920191909152919050565b5f805f8061010085870312156121bd575f80fd5b8435600481106121cb575f80fd5b93506121da8660208701612130565b92506121e98660808701612130565b9396929550929360e00135925050565b634e487b7160e01b5f52602160045260245ffd5b6004811061221d5761221d6121f9565b9052565b805160028110612233576122336121f9565b82526020818101516001600160a01b031690830152604090810151910152565b6101208101612262828861220d565b61226f6020830187612221565b61227c6080830186612221565b60e082019390935261010001529392505050565b5f602082840312156122a0575f80fd5b81516122ab8161211c565b9392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156122e6575f80fd5b81516122ab816120ce565b8082018082111561231057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215612326575f80fd5b5051919050565b610140810161233c828961220d565b6123496020830188612221565b6123566080830187612221565b60e08201949094526001600160a01b039290921661010083015261012090910152939250505056fea264697066735822122035c8a9a3f3913bf7bc06ca896d10b6a21032fd5460c8786c5a77018ff3591b3f64736f6c63430008140033","sourceMap":"1281:15499:46:-:0;;;3622:893;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3709:50:46;;;;;;;3928:86;;-1:-1:-1;;;3928:86:46;;825:2:76;3928:86:46;;;807:21:76;864:2;844:18;;;837:30;904:34;883:19;;;876:63;-1:-1:-1;;;955:19:76;;;948:33;997:20;;;990:33;;;;1060:1;1039:19;;;1032:30;-1:-1:-1;;;1078:19:76;;;1071:38;4008:4:46;1161:18:76;;;1154:60;3812:21:46;;3928:22;;;;;1126:19:76;;3928:86:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3898:116:46;;;;;4295:90;;-1:-1:-1;;;4295:90:46;;1769:2:76;4295:90:46;;;1751:21:76;1808:2;1788:18;;;1781:30;1848:34;1827:19;;;1820:63;-1:-1:-1;;;1899:19:76;;;1892:37;1967:3;1945:20;;;1938:33;2008:1;1987:19;;;1980:30;-1:-1:-1;;;2026:19:76;;;2019:38;4379:4:46;2109:18:76;;;2102:60;4295:22:46;;;;;;2074:19:76;;4295:90:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4261:124:46;;;;;;;4447:27;;4401:107;;;2431:15:76;;;2413:34;;2483:15;;;;2478:2;2463:18;;2456:43;2515:18;;;2508:43;4401:107:46;;2363:2:76;2348:18;4401:107:46;;;;;;;3699:816;3622:893;;1281:15499;;14:177:76;93:13;;-1:-1:-1;;;;;135:31:76;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;1225:208::-;1295:6;1348:2;1336:9;1327:7;1323:23;1319:32;1316:52;;;1364:1;1361;1354:12;1316:52;1387:40;1417:9;1387:40;:::i;:::-;1377:50;1225:208;-1:-1:-1;;;1225:208:76:o;2173:384::-;1281:15499:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610084575f3560e01c8063daa5dc2a11610057578063daa5dc2a1461016f578063dca764951461018e578063dce74418146101ad578063de74e57b146101e0578063fab7920214610210575f80fd5b8063031e6c34146100885780634768d4ef146100a957806365b8f69214610103578063be1343e614610124575b5f80fd5b348015610093575f80fd5b506100a76100a23660046120b7565b610243565b005b3480156100b4575f80fd5b506100e36100c33660046120b7565b60036020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101166101113660046120de565b610df9565b6040519081526020016100fa565b34801561012f575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100fa565b34801561017a575f80fd5b506100a76101893660046120b7565b6117f3565b348015610199575f80fd5b506101166101a83660046121a9565b6118d8565b3480156101b8575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb575f80fd5b506101ff6101fa3660046120b7565b611fd2565b6040516100fa959493929190612253565b34801561021b575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce9190612290565b6001600160a01b0316146103345760405162461bcd60e51b815260206004820152602260248201527f73656e646572206e6f742066756c66696c6c6d656e7420746f6b656e206f776e60448201526132b960f11b60648201526084015b60405180910390fd5b5f828152600360208181526040808420815160608101835281548082526001830154828601526002928301548285015286529252808420815160a08101909252805492949391929091839160ff1690811115610392576103926121f9565b60038111156103a3576103a36121f9565b81526040805160608101909152600183810180546020909401939091839160ff16908111156103d4576103d46121f9565b60018111156103e5576103e56121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561043b5761043b6121f9565b600181111561044c5761044c6121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401548382015260069093015491810191909152848201515f9081526002909252808220815160a0810190925280549394509192909190829060ff1660038111156104c5576104c56121f9565b60038111156104d6576104d66121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610507576105076121f9565b6001811115610518576105186121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561056e5761056e6121f9565b600181111561057f5761057f6121f9565b81526020015f820160019054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152505081526020016005820154815260200160068201548152505090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e855f01516040518263ffffffff1660e01b815260040161062791815260200190565b602060405180830381865afa158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190612290565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e86602001516040518263ffffffff1660e01b81526004016106bb91815260200190565b602060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612290565b905060035f8881526020019081526020015f205f8082015f9055600182015f9055600282015f9055505060025f865f015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f9055505060025f866020015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f905550507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166342966c686001546040518263ffffffff1660e01b81526004016108c791815260200190565b5f604051808303815f87803b1580156108de575f80fd5b505af11580156108f0573d5f803e3d5ffd5b50508651604051630852cd8d60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610956575f80fd5b505af1158015610968573d5f803e3d5ffd5b5050506020860151604051630852cd8d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506342966c68916109bf9160040190815260200190565b5f604051808303815f87803b1580156109d6575f80fd5b505af11580156109e8573d5f803e3d5ffd5b505f92506109f4915050565b84516003811115610a0757610a076121f9565b03610b0f5760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610a4a9130918791906004016122b2565b6020604051808303815f875af1158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a91906122d6565b5060408084015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610ac99130918691906004016122b2565b6020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0991906122d6565b50610df0565b600184516003811115610b2457610b246121f9565b03610c185760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610b679130918791906004016122b2565b6020604051808303815f875af1158015610b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba791906122d6565b506040808401516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610be69130918691906004016122b2565b5f604051808303815f87803b158015610bfd575f80fd5b505af1158015610c0f573d5f803e3d5ffd5b50505050610df0565b600284516003811115610c2d57610c2d6121f9565b03610d0057602080850151908101516040918201519151635b95647560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b72ac8ea92610c8e928692906004016122b2565b5f604051808303815f87803b158015610ca5575f80fd5b505af1158015610cb7573d5f803e3d5ffd5b50505060208085015190810151604091820151915163a9059cbb60e01b81526001600160a01b03868116600483015260248201939093529116915063a9059cbb90604401610ac9565b600384516003811115610d1557610d156121f9565b03610df0576040808501516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610d589130918791906004016122b2565b5f604051808303815f87803b158015610d6f575f80fd5b505af1158015610d81573d5f803e3d5ffd5b5050506040808501516020810151908201519151632142170760e11b81526001600160a01b0390911692506342842e0e91610dc291309186916004016122b2565b5f604051808303815f87803b158015610dd9575f80fd5b505af1158015610deb573d5f803e3d5ffd5b505050505b50505050505050565b5f84815260026020526040808220815160a0810190925280547f00000000000000000000000000000000000000000000000000000000000000009284929091829060ff166003811115610e4e57610e4e6121f9565b6003811115610e5f57610e5f6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610e9057610e906121f9565b6001811115610ea157610ea16121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115610ef757610ef76121f9565b6001811115610f0857610f086121f9565b8152815461010090046001600160a01b0316602080830191909152600190920154604091820152918352600584015483820152600690930154918101919091525f8981526002909252808220815160a0810190925280549394509192909190829060ff166003811115610f7d57610f7d6121f9565b6003811115610f8e57610f8e6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610fbf57610fbf6121f9565b6001811115610fd057610fd06121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115611026576110266121f9565b6001811115611037576110376121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401549083015260069092015491015290505f61108087426122f1565b905082608001515f146110d55760405162461bcd60e51b815260206004820152601760248201527f6f72646572206120616c7265616479206d617463686564000000000000000000604482015260640161032b565b6080820151156111275760405162461bcd60e51b815260206004820152601760248201527f6f72646572206220616c7265616479206d617463686564000000000000000000604482015260640161032b565b428360600151116111705760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818481a185cc8195e1c1a5c9959606a1b604482015260640161032b565b428260600151116111b95760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818881a185cc8195e1c1a5c9959606a1b604482015260640161032b565b808360600151116112185760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526272206160e81b606482015260840161032b565b808260600151116112775760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526239103160e91b606482015260840161032b565b5f8351600381111561128b5761128b6121f9565b036112f6575f825160038111156112a4576112a46121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682031000000000000604482015260640161032b565b61146a565b60018351600381111561130b5761130b6121f9565b0361137257600282516003811115611325576113256121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682032000000000000604482015260640161032b565b600283516003811115611387576113876121f9565b036113ee576001825160038111156113a1576113a16121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682033000000000000604482015260640161032b565b600383516003811115611403576114036121f9565b0361146a5760038251600381111561141d5761141d6121f9565b1461146a5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682034000000000000604482015260640161032b565b8160400151602001516001600160a01b03168360200151602001516001600160a01b0316146114ef5760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a34ba341037b93232b9103160a91b606482015260840161032b565b8260400151602001516001600160a01b03168260200151602001516001600160a01b0316146115745760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a697468206f72646572206160a81b606482015260840161032b565b816040015160400151836020015160400151146115e95760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c103bb4ba341037b93232b9103160991b606482015260840161032b565b8260400151604001518260200151604001511461165e5760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c2077697468206f72646572206160981b606482015260840161032b565b6001805f82825461166f91906122f1565b90915550506001546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b5050505060015460025f8b81526020019081526020015f206006018190555060015460025f8a81526020019081526020015f20600601819055505f60405180606001604052808b81526020018a81526020018381525090508060035f60015481526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050507f24142722f1b2336f069f0fb228e80e81a454234dd7344d63db12e4e156a725f68a8a60015485336040516117da9594939291909485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405180910390a1505060015498975050505050505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187e9190612290565b6001600160a01b0316146118d45760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206c697374696e6720746f6b656e206f776e65720000604482015260640161032b565b5050565b5f60015f808282546118ea91906122f1565b925050819055505f6040518060a0016040528087600381111561190f5761190f6121f9565b815260208082018890526040808301889052606083018790525f60809093018390528254835260029091529020815181549293508392829060ff1916600183600381111561195f5761195f6121f9565b02179055506020820151805160018084018054909291839160ff191690838181111561198d5761198d6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560409182015160019182015590830151805160038401805492939092839160ff199091169083818111156119ee576119ee6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155606082015160058201556080909101516006909101555f85516001811115611a4f57611a4f6121f9565b03611c5c575f856040015111611aa75760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f74206f66666572207a65726f20657263323020746f6b656e730000604482015260640161032b565b60208501516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611aef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b139190612316565b905085602001516001600160a01b03166323b872dd333089604001516040518463ffffffff1660e01b8152600401611b4d939291906122b2565b6020604051808303815f875af1158015611b69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122d6565b506040860151611b9d90826122f1565b60208701516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190612316565b14611c565760405162461bcd60e51b815260206004820152601960248201527f657263323020746f6b656e73206e6f7420726563656976656400000000000000604482015260640161032b565b50611f06565b600185516001811115611c7157611c716121f9565b03611ebe57602085015160408087015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce99190612290565b6001600160a01b031614611d3f5760405162461bcd60e51b815260206004820152601760248201527f73656e646572206e6f7420657263373231206f776e6572000000000000000000604482015260640161032b565b84602001516001600160a01b03166323b872dd337f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401611d97939291906122b2565b5f604051808303815f87803b158015611dae575f80fd5b505af1158015611dc0573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685602001516001600160a01b0316636352211e87604001516040518263ffffffff1660e01b8152600401611e2491815260200190565b602060405180830381865afa158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e639190612290565b6001600160a01b031614611eb95760405162461bcd60e51b815260206004820152601960248201527f65726337323120746f6b656e206e6f7420726563656976656400000000000000604482015260640161032b565b611f06565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206974656d207479706520696e206f66666572000000000000604482015260640161032b565b5f546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b158015611f6e575f80fd5b505af1158015611f80573d5f803e3d5ffd5b505050507f07f0d8a8500bb0556bb8f8eb2d27a5cedefe472dd0e4703b5711cdac02f1a9c986868686335f54604051611fbe9695949392919061232d565b60405180910390a150505f54949350505050565b60026020525f90815260409081902080548251606081019093526001808301805460ff93841695939192849290911690811115612011576120116121f9565b6001811115612022576120226121f9565b8152815461010090046001600160a01b0316602082015260019182015460409182015280516060810190915260038401805493949391929091839160ff90911690811115612072576120726121f9565b6001811115612083576120836121f9565b8152815461010090046001600160a01b03166020820152600190910154604090910152600582015460069092015490919085565b5f602082840312156120c7575f80fd5b5035919050565b80151581146120db575f80fd5b50565b5f805f80608085870312156120f1575f80fd5b8435935060208501359250604085013591506060850135612111816120ce565b939692955090935050565b6001600160a01b03811681146120db575f80fd5b5f60608284031215612140575f80fd5b6040516060810181811067ffffffffffffffff8211171561216f57634e487b7160e01b5f52604160045260245ffd5b604052905080823560028110612183575f80fd5b815260208301356121938161211c565b6020820152604092830135920191909152919050565b5f805f8061010085870312156121bd575f80fd5b8435600481106121cb575f80fd5b93506121da8660208701612130565b92506121e98660808701612130565b9396929550929360e00135925050565b634e487b7160e01b5f52602160045260245ffd5b6004811061221d5761221d6121f9565b9052565b805160028110612233576122336121f9565b82526020818101516001600160a01b031690830152604090810151910152565b6101208101612262828861220d565b61226f6020830187612221565b61227c6080830186612221565b60e082019390935261010001529392505050565b5f602082840312156122a0575f80fd5b81516122ab8161211c565b9392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156122e6575f80fd5b81516122ab816120ce565b8082018082111561231057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215612326575f80fd5b5051919050565b610140810161233c828961220d565b6123496020830188612221565b6123566080830187612221565b60e08201949094526001600160a01b039290921661010083015261012090910152939250505056fea264697066735822122035c8a9a3f3913bf7bc06ca896d10b6a21032fd5460c8786c5a77018ff3591b3f64736f6c63430008140033","sourceMap":"1281:15499:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14221:2386;;;;;;;;;;-1:-1:-1;14221:2386:46;;;;;:::i;:::-;;:::i;:::-;;2933:49;;;;;;;;;;-1:-1:-1;2933:49:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:25:76;;;457:2;442:18;;435:34;;;;485:18;;;478:34;389:2;374:18;2933:49:46;;;;;;;;10191:3630;;;;;;:::i;:::-;;:::i;:::-;;;1243:25:76;;;1231:2;1216:18;10191:3630:46;1097:177:76;2576:48:46;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1443:32:76;;;1425:51;;1413:2;1398:18;2576:48:46;1279:203:76;7356:1480:46;;;;;;;;;;-1:-1:-1;7356:1480:46;;;;;:::i;:::-;;:::i;5314:1731::-;;;;;;;;;;-1:-1:-1;5314:1731:46;;;;;:::i;:::-;;:::i;2456:52::-;;;;;;;;;;;;;;;2842:50;;;;;;;;;;-1:-1:-1;2842:50:46;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;2514:56::-;;;;;;;;;;;;;;;14221:2386;1594:68;;-1:-1:-1;;;1594:68:46;;;;;1243:25:76;;;14308:18:46;;1666:10;;-1:-1:-1;;;;;1602:31:46;1594:48;;;;1216:18:76;;1594:68:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1594:82:46;;1586:129;;;;-1:-1:-1;;;1586:129:46;;4708:2:76;1586:129:46;;;4690:21:76;4747:2;4727:18;;;4720:30;4786:34;4766:18;;;4759:62;-1:-1:-1;;;4837:18:76;;;4830:32;4879:19;;1586:129:46;;;;;;;;;14338:36:::1;14377:27:::0;;;:7:::1;:27;::::0;;;;;;;14338:66;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;14445:40;;;;;;;14414:71;;::::1;::::0;::::1;::::0;;;;;14338:66;;:36;14414:71;;14445:40;;14414:71;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14414:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14414:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;14535:30;;::::1;::::0;-1:-1:-1;14526:40:46;;;:8:::1;:40:::0;;;;;;14495:71;;::::1;::::0;::::1;::::0;;;;;14414;;-1:-1:-1;;;14495:71:46;;14526:40;14495:71;;::::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14495:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14495:71:46::1;-1:-1:-1::0;;;;;14495:71:46::1;-1:-1:-1::0;;;;;14495:71:46::1;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;14576:20;14607:27;-1:-1:-1::0;;;;;14599:44:46::1;;14644:14;:30;;;14599:76;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14599:76:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14576:99;;14685:20;14716:27;-1:-1:-1::0;;;;;14708:44:46::1;;14753:14;:30;;;14708:76;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14708:76:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14685:99;;14802:7;:27;14810:18;14802:27;;;;;;;;;;;;14795:34:::0;::::1;;;;;;;;;;;;;;;;;;;14846:8;:40;14855:14;:30;;;14846:40;;;;;;;;;;;;14839:47:::0;::::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14839:47:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14839:47:46::1;;;;;;;;;;;;;;;;;;;;;;;;;;;14903:8;:40;14912:14;:30;;;14903:40;;;;;;;;;;;;14896:47:::0;::::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14896:47:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14896:47:46::1;;;;;;;;;;;;;;;;;;;;;;;;;;;14996:31;-1:-1:-1::0;;;;;14987:46:46::1;;15034:18;;14987:66;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14987:66:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15137:30:46;;15094:74:::1;::::0;-1:-1:-1;;;15094:74:46;;::::1;::::0;::::1;1243:25:76::0;;;;15103:27:46::1;-1:-1:-1::0;;;;;15094:42:46::1;::::0;-1:-1:-1;15094:42:46::1;::::0;-1:-1:-1;1216:18:76;;15094:74:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;15221:30:46::1;::::0;::::1;::::0;15178:74:::1;::::0;-1:-1:-1;;;15178:74:46;;-1:-1:-1;;;;;15187:27:46::1;15178:42;::::0;-1:-1:-1;15178:42:46::1;::::0;:74:::1;::::0;::::1;;1243:25:76::0;;;1231:2;1216:18;;1097:177;15178:74:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15312:25:46::1;::::0;-1:-1:-1;15292:45:46::1;::::0;-1:-1:-1;;15292:45:46;::::1;:16:::0;;:45:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15288:1313:::1;;15360:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15436;;::::1;::::0;15353:116;;-1:-1:-1;;;15353:116:46;;-1:-1:-1;;;;;15353:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15415:4:::1;::::0;15422:12;;15436:32;15353:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15490:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15566;;::::1;::::0;15483:116;;-1:-1:-1;;;15483:116:46;;-1:-1:-1;;;;;15483:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15545:4:::1;::::0;15552:12;;15566:32;15483:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15288:1313;;;15640:26;15620:16:::0;;:46:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15616:985:::1;;15689:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15765;;::::1;::::0;15682:116;;-1:-1:-1;;;15682:116:46;;-1:-1:-1;;;;;15682:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15744:4:::1;::::0;15751:12;;15765:32;15682:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15820:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15900;;::::1;::::0;15812:121;;-1:-1:-1;;;15812:121:46;;-1:-1:-1;;;;;15812:58:46;;::::1;::::0;::::1;::::0;:121:::1;::::0;15879:4:::1;::::0;15886:12;;15900:32;15812:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15616:985;;;15974:26;15954:16:::0;;:46:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15950:651:::1;;16080:14;::::0;;::::1;::::0;:30;;::::1;::::0;16112::::1;::::0;;::::1;::::0;16016:127;;-1:-1:-1;;;16016:127:46;;-1:-1:-1;;;;;16030:23:46::1;16016:49;::::0;::::1;::::0;:127:::1;::::0;16066:12;;16112:30;16016:127:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;16164:14:46::1;::::0;;::::1;::::0;:30;;::::1;::::0;16219::::1;::::0;;::::1;::::0;16157:93;;-1:-1:-1;;;16157:93:46;;-1:-1:-1;;;;;5731:32:76;;;16157:93:46::1;::::0;::::1;5713:51:76::0;5780:18;;;5773:34;;;;16157:47:46;::::1;::::0;-1:-1:-1;16157:47:46::1;::::0;5686:18:76;;16157:93:46::1;5539:274:76::0;15950:651:46::1;16291:27;16271:16:::0;;:47:::1;::::0;::::1;;;;;;:::i;:::-;::::0;16267:334:::1;;16342:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;16422;;::::1;::::0;16334:121;;-1:-1:-1;;;16334:121:46;;-1:-1:-1;;;;;16334:58:46;;::::1;::::0;::::1;::::0;:121:::1;::::0;16401:4:::1;::::0;16408:12;;16422:32;16334:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;16477:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;16557;;::::1;::::0;16469:121;;-1:-1:-1;;;16469:121:46;;-1:-1:-1;;;;;16469:58:46;;::::1;::::0;-1:-1:-1;16469:58:46::1;::::0;:121:::1;::::0;16536:4:::1;::::0;16543:12;;16469:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16267:334;14328:2279;;;;;14221:2386:::0;;:::o;10191:3630::-;10327:7;10931:25;;;:8;:25;;;;;;10900:56;;;;;;;;;;10411:27;;10327:7;;10900:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10900:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10900:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10997:25:46;;;:8;:25;;;;;;10966:56;;;;;;;;;;10900;;-1:-1:-1;;;10966:56:46;;10997:25;10966:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10966:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10966:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11058:26:46;11076:8;11058:15;:26;:::i;:::-;11032:52;;11103:6;:25;;;11132:1;11103:30;11095:66;;;;-1:-1:-1;;;11095:66:46;;6247:2:76;11095:66:46;;;6229:21:76;6286:2;6266:18;;;6259:30;6325:25;6305:18;;;6298:53;6368:18;;11095:66:46;6045:347:76;11095:66:46;11179:25;;;;:30;11171:66;;;;-1:-1:-1;;;11171:66:46;;6599:2:76;11171:66:46;;;6581:21:76;6638:2;6618:18;;;6611:30;6677:25;6657:18;;;6650:53;6720:18;;11171:66:46;6397:347:76;11171:66:46;11275:15;11255:6;:17;;;:35;11247:67;;;;-1:-1:-1;;;11247:67:46;;6951:2:76;11247:67:46;;;6933:21:76;6990:2;6970:18;;;6963:30;-1:-1:-1;;;7009:18:76;;;7002:49;7068:18;;11247:67:46;6749:343:76;11247:67:46;11352:15;11332:6;:17;;;:35;11324:67;;;;-1:-1:-1;;;11324:67:46;;7299:2:76;11324:67:46;;;7281:21:76;7338:2;7318:18;;;7311:30;-1:-1:-1;;;7357:18:76;;;7350:49;7416:18;;11324:67:46;7097:343:76;11324:67:46;11429:15;11409:6;:17;;;:35;11401:83;;;;-1:-1:-1;;;11401:83:46;;7647:2:76;11401:83:46;;;7629:21:76;7686:2;7666:18;;;7659:30;7725:34;7705:18;;;7698:62;-1:-1:-1;;;7776:18:76;;;7769:33;7819:19;;11401:83:46;7445:399:76;11401:83:46;11522:15;11502:6;:17;;;:35;11494:83;;;;-1:-1:-1;;;11494:83:46;;8051:2:76;11494:83:46;;;8033:21:76;8090:2;8070:18;;;8063:30;8129:34;8109:18;;;8102:62;-1:-1:-1;;;8180:18:76;;;8173:33;8223:19;;11494:83:46;7849:399:76;11494:83:46;11640:25;11620:16;;:45;;;;;;;;:::i;:::-;;11616:666;;11709:25;11689:16;;:45;;;;;;;;:::i;:::-;;11681:84;;;;-1:-1:-1;;;11681:84:46;;8455:2:76;11681:84:46;;;8437:21:76;8494:2;8474:18;;;8467:30;8533:28;8513:18;;;8506:56;8579:18;;11681:84:46;8253:350:76;11681:84:46;11616:666;;;11806:26;11786:16;;:46;;;;;;;;:::i;:::-;;11782:500;;11876:26;11856:16;;:46;;;;;;;;:::i;:::-;;11848:85;;;;-1:-1:-1;;;11848:85:46;;8810:2:76;11848:85:46;;;8792:21:76;8849:2;8829:18;;;8822:30;8888:28;8868:18;;;8861:56;8934:18;;11848:85:46;8608:350:76;11782:500:46;11974:26;11954:16;;:46;;;;;;;;:::i;:::-;;11950:332;;12044:26;12024:16;;:46;;;;;;;;:::i;:::-;;12016:85;;;;-1:-1:-1;;;12016:85:46;;9165:2:76;12016:85:46;;;9147:21:76;9204:2;9184:18;;;9177:30;9243:28;9223:18;;;9216:56;9289:18;;12016:85:46;8963:350:76;11950:332:46;12142:27;12122:16;;:47;;;;;;;;:::i;:::-;;12118:164;;12213:27;12193:16;;:47;;;;;;;;:::i;:::-;;12185:86;;;;-1:-1:-1;;;12185:86:46;;9520:2:76;12185:86:46;;;9502:21:76;9559:2;9539:18;;;9532:30;9598:28;9578:18;;;9571:56;9644:18;;12185:86:46;9318:350:76;12185:86:46;12333:6;:16;;;:32;;;-1:-1:-1;;;;;12299:66:46;:6;:14;;;:30;;;-1:-1:-1;;;;;12299:66:46;;12291:122;;;;-1:-1:-1;;;12291:122:46;;9875:2:76;12291:122:46;;;9857:21:76;9914:2;9894:18;;;9887:30;9953:34;9933:18;;;9926:62;-1:-1:-1;;;10004:18:76;;;9997:41;10055:19;;12291:122:46;9673:407:76;12291:122:46;12465:6;:16;;;:32;;;-1:-1:-1;;;;;12431:66:46;:6;:14;;;:30;;;-1:-1:-1;;;;;12431:66:46;;12423:122;;;;-1:-1:-1;;;12423:122:46;;10287:2:76;12423:122:46;;;10269:21:76;10326:2;10306:18;;;10299:30;10365:34;10345:18;;;10338:62;-1:-1:-1;;;10416:18:76;;;10409:41;10467:19;;12423:122:46;10085:407:76;12423:122:46;12597:6;:16;;;:32;;;12563:6;:14;;;:30;;;:66;12555:124;;;;-1:-1:-1;;;12555:124:46;;10699:2:76;12555:124:46;;;10681:21:76;10738:2;10718:18;;;10711:30;10777:34;10757:18;;;10750:62;-1:-1:-1;;;10828:18:76;;;10821:43;10881:19;;12555:124:46;10497:409:76;12555:124:46;12731:6;:16;;;:32;;;12697:6;:14;;;:30;;;:66;12689:124;;;;-1:-1:-1;;;12689:124:46;;11113:2:76;12689:124:46;;;11095:21:76;11152:2;11132:18;;;11125:30;11191:34;11171:18;;;11164:62;-1:-1:-1;;;11242:18:76;;;11235:43;11295:19;;12689:124:46;10911:409:76;12689:124:46;13142:1;13120:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;13212:18:46;;13153:78;;-1:-1:-1;;;13153:78:46;;13200:10;13153:78;;;5713:51:76;5780:18;;;5773:34;;;;13162:31:46;-1:-1:-1;;;;;13153:46:46;;;;5686:18:76;;13153:78:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13327:18;;13280:8;:25;13289:15;13280:25;;;;;;;;;;;:44;;:65;;;;13402:18;;13355:8;:25;13364:15;13355:25;;;;;;;;;;;:44;;:65;;;;13454:36;13493:111;;;;;;;;13521:15;13493:111;;;;13550:15;13493:111;;;;13579:15;13493:111;;;13454:150;;13644:14;13614:7;:27;13622:18;;13614:27;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;13674:104;13696:15;13713;13730:18;;13750:15;13767:10;13674:104;;;;;;;;;11584:25:76;;;11640:2;11625:18;;11618:34;;;;11683:2;11668:18;;11661:34;;;;11726:2;11711:18;;11704:34;-1:-1:-1;;;;;11775:32:76;11769:3;11754:19;;11747:61;11571:3;11556:19;;11325:489;13674:104:46;;;;;;;;-1:-1:-1;;13796:18:46;;;10191:3630;-1:-1:-1;;;;;;;;10191:3630:46:o;7356:1480::-;1385:60;;-1:-1:-1;;;1385:60:46;;;;;1243:25:76;;;7434:14:46;;1449:10;;-1:-1:-1;;;;;1393:27:46;1385:44;;;;1216:18:76;;1385:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1385:74:46;;1377:117;;;;-1:-1:-1;;;1377:117:46;;12021:2:76;1377:117:46;;;12003:21:76;12060:2;12040:18;;;12033:30;12099:32;12079:18;;;12072:60;12149:18;;1377:117:46;11819:354:76;1377:117:46;7356:1480;;:::o;5314:1731::-;5451:7;5488:1;5470:14;;:19;;;;;;;:::i;:::-;;;;;;;;5531:29;5563:135;;;;;;;;5591:9;5563:135;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5563:135:46;;;;;;;5717:14;;5708:24;;:8;:24;;;;;:34;;;;5531:167;;-1:-1:-1;5531:167:46;;5708:24;;-1:-1:-1;;5708:34:46;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;;;;;;;;;;;;-1:-1:-1;;5708:34:46;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;-1:-1:-1;;;;;5708:34:46;;;;;-1:-1:-1;;;;;;5708:34:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5708:34:46;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;-1:-1:-1;;;;;5708:34:46;;;;;-1:-1:-1;;;;;;5708:34:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:14;;:32;;;;;;;;:::i;:::-;;5785:983;;5869:1;5845:5;:21;;;:25;5837:68;;;;-1:-1:-1;;;5837:68:46;;12380:2:76;5837:68:46;;;12362:21:76;12419:2;12399:18;;;12392:30;12458:32;12438:18;;;12431:60;12508:18;;5837:68:46;12178:354:76;5837:68:46;5947:21;;;;5940:54;;-1:-1:-1;;;5940:54:46;;5988:4;5940:54;;;1425:51:76;5919:18:46;;-1:-1:-1;;;;;5940:39:46;;;;1398:18:76;;5940:54:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5919:75;;6015:5;:21;;;-1:-1:-1;;;;;6008:42:46;;6051:10;6071:4;6078:5;:21;;;6008:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6193:21:46;;;;6180:34;;:10;:34;:::i;:::-;6129:21;;;;6122:54;;-1:-1:-1;;;6122:54:46;;6170:4;6122:54;;;1425:51:76;-1:-1:-1;;;;;6122:39:46;;;;;;1398:18:76;;6122:54:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;6114:130;;;;-1:-1:-1;;;6114:130:46;;12928:2:76;6114:130:46;;;12910:21:76;12967:2;12947:18;;;12940:30;13006:27;12986:18;;;12979:55;13051:18;;6114:130:46;12726:349:76;6114:130:46;5823:432;5785:983;;;6283:15;6265:14;;:33;;;;;;;;:::i;:::-;;6261:507;;6330:21;;;;6361;;;;;6322:61;;-1:-1:-1;;;6322:61:46;;;;;1243:25:76;;;;6387:10:46;;-1:-1:-1;;;;;6322:38:46;;;;1216:18:76;;6322:61:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6322:75:46;;6314:111;;;;-1:-1:-1;;;6314:111:46;;13282:2:76;6314:111:46;;;13264:21:76;13321:2;13301:18;;;13294:30;13360:25;13340:18;;;13333:53;13403:18;;6314:111:46;13080:347:76;6314:111:46;6447:5;:21;;;-1:-1:-1;;;;;6439:43:46;;6483:10;6495:23;6520:5;:21;;;6439:103;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6629:23;-1:-1:-1;;;;;6564:88:46;6572:5;:21;;;-1:-1:-1;;;;;6564:38:46;;6603:5;:21;;;6564:61;;;;;;;;;;;;;1243:25:76;;1231:2;1216:18;;1097:177;6564:61:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6564:88:46;;6556:126;;;;-1:-1:-1;;;6556:126:46;;13634:2:76;6556:126:46;;;13616:21:76;13673:2;13653:18;;;13646:30;13712:27;13692:18;;;13685:55;13757:18;;6556:126:46;13432:349:76;6556:126:46;6261:507;;;6713:44;;-1:-1:-1;;;6713:44:46;;13988:2:76;6713:44:46;;;13970:21:76;14027:2;14007:18;;;14000:30;14066:28;14046:18;;;14039:56;14112:18;;6713:44:46;13786:350:76;6713:44:46;6887:14;;6832:70;;-1:-1:-1;;;6832:70:46;;6875:10;6832:70;;;5713:51:76;5780:18;;;5773:34;;;;6841:27:46;-1:-1:-1;;;;;6832:42:46;;;;5686:18:76;;6832:70:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6918:88;6940:9;6951:5;6958:7;6967:10;6979;6991:14;;6918:88;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;7024:14:46;;5314:1731;;;;;;:::o;2842:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2842:50:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2842:50:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:76:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:76;;14:180;-1:-1:-1;14:180:76:o;523:118::-;609:5;602:13;595:21;588:5;585:32;575:60;;631:1;628;621:12;575:60;523:118;:::o;646:446::-;729:6;737;745;753;806:3;794:9;785:7;781:23;777:33;774:53;;;823:1;820;813:12;774:53;859:9;846:23;836:33;;916:2;905:9;901:18;888:32;878:42;;967:2;956:9;952:18;939:32;929:42;;1021:2;1010:9;1006:18;993:32;1034:28;1056:5;1034:28;:::i;:::-;646:446;;;;-1:-1:-1;646:446:76;;-1:-1:-1;;646:446:76:o;1487:131::-;-1:-1:-1;;;;;1562:31:76;;1552:42;;1542:70;;1608:1;1605;1598:12;1623:792;1679:5;1727:4;1715:9;1710:3;1706:19;1702:30;1699:50;;;1745:1;1742;1735:12;1699:50;1778:2;1772:9;1820:4;1812:6;1808:17;1891:6;1879:10;1876:22;1855:18;1843:10;1840:34;1837:62;1834:185;;;1941:10;1936:3;1932:20;1929:1;1922:31;1976:4;1973:1;1966:15;2004:4;2001:1;1994:15;1834:185;2035:2;2028:22;2068:6;-1:-1:-1;2068:6:76;2098:23;;2152:1;2140:14;;2130:42;;2168:1;2165;2158:12;2130:42;2181:23;;2256:2;2241:18;;2228:32;2269:33;2228:32;2269:33;:::i;:::-;2330:2;2318:15;;2311:32;2404:2;2389:18;;;2376:32;2359:15;;2352:57;;;;1623:792;;-1:-1:-1;1623:792:76:o;2420:582::-;2577:6;2585;2593;2601;2654:3;2642:9;2633:7;2629:23;2625:33;2622:53;;;2671:1;2668;2661:12;2622:53;2710:9;2697:23;2749:1;2742:5;2739:12;2729:40;;2765:1;2762;2755:12;2729:40;2788:5;-1:-1:-1;2812:56:76;2860:7;2855:2;2840:18;;2812:56;:::i;:::-;2802:66;;2887:57;2936:7;2930:3;2919:9;2915:19;2887:57;:::i;:::-;2420:582;;;;-1:-1:-1;2877:67:76;;2991:3;2976:19;2963:33;;-1:-1:-1;;2420:582:76:o;3007:127::-;3068:10;3063:3;3059:20;3056:1;3049:31;3099:4;3096:1;3089:15;3123:4;3120:1;3113:15;3139:140;3220:1;3213:5;3210:12;3200:46;;3226:18;;:::i;:::-;3255;;3139:140::o;3284:305::-;3363:5;3357:12;3395:1;3391:2;3388:9;3378:43;;3401:18;;:::i;:::-;3430:15;;3498:4;3487:16;;;3481:23;-1:-1:-1;;;;;3477:49:76;3461:14;;;3454:73;3576:4;3565:16;;;3559:23;3543:14;;3536:47;3284:305::o;3594:651::-;3965:3;3950:19;;3978:44;3954:9;4004:6;3978:44;:::i;:::-;4031:55;4082:2;4071:9;4067:18;4059:6;4031:55;:::i;:::-;4095:56;4146:3;4135:9;4131:19;4123:6;4095:56;:::i;:::-;4182:3;4167:19;;4160:35;;;;4226:3;4211:19;4204:35;3594:651;;-1:-1:-1;;;3594:651:76:o;4250:251::-;4320:6;4373:2;4361:9;4352:7;4348:23;4344:32;4341:52;;;4389:1;4386;4379:12;4341:52;4421:9;4415:16;4440:31;4465:5;4440:31;:::i;:::-;4490:5;4250:251;-1:-1:-1;;;4250:251:76:o;4909:375::-;-1:-1:-1;;;;;5167:15:76;;;5149:34;;5219:15;;;;5214:2;5199:18;;5192:43;5266:2;5251:18;;5244:34;;;;5099:2;5084:18;;4909:375::o;5289:245::-;5356:6;5409:2;5397:9;5388:7;5384:23;5380:32;5377:52;;;5425:1;5422;5415:12;5377:52;5457:9;5451:16;5476:28;5498:5;5476:28;:::i;5818:222::-;5883:9;;;5904:10;;;5901:133;;;5956:10;5951:3;5947:20;5944:1;5937:31;5991:4;5988:1;5981:15;6019:4;6016:1;6009:15;5901:133;5818:222;;;;:::o;12537:184::-;12607:6;12660:2;12648:9;12639:7;12635:23;12631:32;12628:52;;;12676:1;12673;12666:12;12628:52;-1:-1:-1;12699:16:76;;12537:184;-1:-1:-1;12537:184:76:o;14141:749::-;14540:3;14525:19;;14553:44;14529:9;14579:6;14553:44;:::i;:::-;14606:55;14657:2;14646:9;14642:18;14634:6;14606:55;:::i;:::-;14670:56;14721:3;14710:9;14706:19;14698:6;14670:56;:::i;:::-;14757:3;14742:19;;14735:35;;;;-1:-1:-1;;;;;14807:32:76;;;;14801:3;14786:19;;14779:61;14871:3;14856:19;;;14849:35;14141:749;;-1:-1:-1;;;14141:749:76:o","linkReferences":{},"immutableReferences":{"49317":[{"start":446,"length":32},{"start":1496,"length":32},{"start":1643,"length":32},{"start":2315,"length":32},{"start":2439,"length":32},{"start":3604,"length":32},{"start":6165,"length":32},{"start":7973,"length":32}],"49319":[{"start":545,"length":32},{"start":613,"length":32},{"start":2169,"length":32},{"start":5780,"length":32}],"49321":[{"start":309,"length":32},{"start":3160,"length":32},{"start":7509,"length":32},{"start":7622,"length":32}]}},"methodIdentifiers":{"cancelTokenizedOrder(uint256)":"daa5dc2a","createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":"dca76495","fulfillTokenizedOrder(uint256)":"031e6c34","fulfillmentTokenContractAddress()":"fab79202","listingTokenContractAddress()":"dce74418","listings(uint256)":"de74e57b","matchTokenizedOrder(uint256,uint256,uint256,bool)":"65b8f692","matches(uint256)":"4768d4ef","treasuryContractAddress()":"be1343e6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721FactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasuryContractAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"listingTokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fulfillmentTokenContract\",\"type\":\"address\"}],\"name\":\"TokenizedMarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"request\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenId\",\"type\":\"uint256\"}],\"name\":\"TokenizedOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fulfiller\",\"type\":\"address\"}],\"name\":\"TokenizedOrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"matcher\",\"type\":\"address\"}],\"name\":\"TokenizedOrderMatched\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenId\",\"type\":\"uint256\"}],\"name\":\"cancelTokenizedOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"request\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"createTokenizedOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"}],\"name\":\"fulfillTokenizedOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fulfillmentTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listingTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"listings\",\"outputs\":[{\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offered\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"requested\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"autofill\",\"type\":\"bool\"}],\"name\":\"matchTokenizedOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"matches\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)\":{\"params\":{\"expiration\":\"time when order will expire and become invalid\",\"offer\":\"order item offered by order creator\",\"orderType\":\"type of order defining order route (e.g. ERC20_FOR_ERC721, ERC721_FOR_ERC721)\",\"request\":\"order item requested by order creator\"},\"returns\":{\"_0\":\"uint256 token id for newly minted listing token\"}},\"fulfillTokenizedOrder(uint256)\":{\"params\":{\"fulfillmentTokenId\":\"token id of match to fulfill\"}},\"matchTokenizedOrder(uint256,uint256,uint256,bool)\":{\"params\":{\"autofill\":\"if true then the FULFILL token will automatically be redeemed\",\"duration\":\"length of time in seconds until the match expires\",\"listingTokenIdA\":\"token id of listing a\",\"listingTokenIdB\":\"token id of listing b\"},\"returns\":{\"_0\":\"uint256 id of new fulfillment token representing a secured match\"}}},\"title\":\"Tokenized Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelTokenizedOrder(uint256)\":{\"notice\":\"Cancels an outstanding tokenized order. The offered item represented by the given LISTING token id will be transferred to the LISTING token holder, and the LISTING token will be burned. Only callable by the LISTING token owner, and LISTING token must not be matched.\"},\"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)\":{\"notice\":\"Places a new tokenized order on the market. The offered item will be transferred to the treasury contract for storage, and a LISTING token will be minted to represent ownership of the offered item. The LISTING token can be redeemed at any time to remove the associated listing from the public order book and claim the underlying offered order item.\"},\"fulfillTokenizedOrder(uint256)\":{\"notice\":\"Fulfills the match represented by `fulfillmentTokenId`. If the fulfillment is valid, both LISTING tokens and the FULFILL token will be burned, and the order match will be executed. LISTING token holders will receive the appropriate requested order items defined in the underlying order.\"},\"matchTokenizedOrder(uint256,uint256,uint256,bool)\":{\"notice\":\"Attempts to establish a match between orders for `listingTokenIdA` and `listingTokenIdB` in the public order book. To qualify as a valid match all the following criteria must be met: - Caller must pay a premium based on match duration if autofill is false. - Offer for listing A must match Request from listing B, and vice versa. - Both orders must not be expired. - Both orders must not already be matched. If the match is found to be valid, a FULFILL token will me minted to the matcher address. A FULFILL token grants the owner the sole right, but not the obligation, to fulfill the underlying match at any time before the match expiration. Additionally, while the match is valid both LISTING tokens cannot be redeemed for their underlying tokens. If the match expires the match creator forfeits the premium paid, and anyone that cancels the expired match will receive a cut of the premium.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETokenizedMarket.sol\":\"OGRETokenizedMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"src/OGRETokenizedMarket.sol\":{\"keccak256\":\"0xd21d81ef0d3cda13365e3e0ba219697cdaf59af03e6f7886c7a642c12dcc9ad0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dbd886851bf131806ca25900c7d87f7ac3633d408a5603c00bf77781078c4e50\",\"dweb:/ipfs/QmUbD4Fgkrymmo1MoaCmEw7VhG6VcuFnD5Hayc36YqMuDb\"]},\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]},\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4\",\"dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"erc721FactoryAddress_","type":"address"},{"internalType":"address","name":"treasuryContractAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"erc721Factory","type":"address","indexed":false},{"internalType":"address","name":"listingTokenContract","type":"address","indexed":false},{"internalType":"address","name":"fulfillmentTokenContract","type":"address","indexed":false}],"type":"event","name":"TokenizedMarketCreated","anonymous":false},{"inputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offer","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"indexed":false},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"request","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"indexed":false},{"internalType":"uint256","name":"expiration","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"uint256","name":"listingTokenId","type":"uint256","indexed":false}],"type":"event","name":"TokenizedOrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"fulfiller","type":"address","indexed":false}],"type":"event","name":"TokenizedOrderFulfilled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256","indexed":false},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256","indexed":false},{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"expiration","type":"uint256","indexed":false},{"internalType":"address","name":"matcher","type":"address","indexed":false}],"type":"event","name":"TokenizedOrderMatched","anonymous":false},{"inputs":[{"internalType":"uint256","name":"listingTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelTokenizedOrder"},{"inputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8"},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offer","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"request","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"uint256","name":"expiration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createTokenizedOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fulfillTokenizedOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"fulfillmentTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listingTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"listings","outputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8"},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offered","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"requested","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256"},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"bool","name":"autofill","type":"bool"}],"stateMutability":"payable","type":"function","name":"matchTokenizedOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"matches","outputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256"},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256"},{"internalType":"uint256","name":"expiration","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"treasuryContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":{"params":{"expiration":"time when order will expire and become invalid","offer":"order item offered by order creator","orderType":"type of order defining order route (e.g. ERC20_FOR_ERC721, ERC721_FOR_ERC721)","request":"order item requested by order creator"},"returns":{"_0":"uint256 token id for newly minted listing token"}},"fulfillTokenizedOrder(uint256)":{"params":{"fulfillmentTokenId":"token id of match to fulfill"}},"matchTokenizedOrder(uint256,uint256,uint256,bool)":{"params":{"autofill":"if true then the FULFILL token will automatically be redeemed","duration":"length of time in seconds until the match expires","listingTokenIdA":"token id of listing a","listingTokenIdB":"token id of listing b"},"returns":{"_0":"uint256 id of new fulfillment token representing a secured match"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelTokenizedOrder(uint256)":{"notice":"Cancels an outstanding tokenized order. The offered item represented by the given LISTING token id will be transferred to the LISTING token holder, and the LISTING token will be burned. Only callable by the LISTING token owner, and LISTING token must not be matched."},"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":{"notice":"Places a new tokenized order on the market. The offered item will be transferred to the treasury contract for storage, and a LISTING token will be minted to represent ownership of the offered item. The LISTING token can be redeemed at any time to remove the associated listing from the public order book and claim the underlying offered order item."},"fulfillTokenizedOrder(uint256)":{"notice":"Fulfills the match represented by `fulfillmentTokenId`. If the fulfillment is valid, both LISTING tokens and the FULFILL token will be burned, and the order match will be executed. LISTING token holders will receive the appropriate requested order items defined in the underlying order."},"matchTokenizedOrder(uint256,uint256,uint256,bool)":{"notice":"Attempts to establish a match between orders for `listingTokenIdA` and `listingTokenIdB` in the public order book. To qualify as a valid match all the following criteria must be met: - Caller must pay a premium based on match duration if autofill is false. - Offer for listing A must match Request from listing B, and vice versa. - Both orders must not be expired. - Both orders must not already be matched. If the match is found to be valid, a FULFILL token will me minted to the matcher address. A FULFILL token grants the owner the sole right, but not the obligation, to fulfill the underlying match at any time before the match expiration. Additionally, while the match is valid both LISTING tokens cannot be redeemed for their underlying tokens. If the match expires the match creator forfeits the premium paid, and anyone that cancels the expired match will receive a cut of the premium."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETokenizedMarket.sol":"OGRETokenizedMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"src/OGRETokenizedMarket.sol":{"keccak256":"0xd21d81ef0d3cda13365e3e0ba219697cdaf59af03e6f7886c7a642c12dcc9ad0","urls":["bzz-raw://dbd886851bf131806ca25900c7d87f7ac3633d408a5603c00bf77781078c4e50","dweb:/ipfs/QmUbD4Fgkrymmo1MoaCmEw7VhG6VcuFnD5Hayc36YqMuDb"],"license":"UNLICENSED"},"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"},"src/interfaces/IOGRETreasury.sol":{"keccak256":"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104","urls":["bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4","dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C"],"license":"UNLICENSED"}},"version":1},"id":46} \ No newline at end of file diff --git a/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json b/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json new file mode 100644 index 0000000..7dfd588 --- /dev/null +++ b/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"erc721FactoryAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ALLOWED_CONTRACT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createDeposit","inputs":[{"name":"deposit","type":"tuple","internalType":"struct OGRETokenizedTreasury.TokenizedDeposit","components":[{"name":"contractType","type":"uint8","internalType":"enum OGRETokenizedTreasury.ContractType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"contractType","type":"uint8","internalType":"enum OGRETokenizedTreasury.ContractType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"redeemDeposit","inputs":[{"name":"depositTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAllowlist","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b506040516200154538038062001545833981016040819052620000339162000270565b6040516377b24c1360e11b8152606060048201526024606482018190527f4f475245546f6b656e697a65645472656173757279204465706f73697420546f6084830152636b656e7360e01b60a483015260c090820152600760c48201526611115413d4d25560ca1b60e482015230604482015281906001600160a01b0382169063ef64982690610104016020604051808303815f875af1158015620000da573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000100919062000270565b6001600160a01b0316608052620001265f8051602062001505833981519152336200017a565b50620001495f80516020620015258339815191526080516200017a60201b60201c565b50620001725f80516020620015258339815191525f805160206200150583398151915262000226565b50506200029f565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166200021d575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001d43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000220565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f6020828403121562000281575f80fd5b81516001600160a01b038116811462000298575f80fd5b9392505050565b608051611231620002d45f395f81816102480152818161090b015281816109b801528181610a8e0152610b0801526112315ff3fe6080604052600436106100eb575f3560e01c806336568abe11610089578063b02c43d011610058578063b02c43d0146102b4578063d547741f14610309578063e84532a114610328578063e8ee60021461035b576100f2565b806336568abe146102185780636072e5771461023757806391d1485414610282578063a217fddf146102a1576100f2565b80631e984822116100c55780631e9848221461018c578063248a9ca3146101ac5780632f2ff15d146101da57806331a64434146101f9576100f2565b806301ffc9a7146100ff578063150b7a02146101335780631dc7e3a41461016b576100f2565b366100f257005b3480156100fd575f80fd5b005b34801561010a575f80fd5b5061011e610119366004610f2b565b61037a565b60405190151581526020015b60405180910390f35b34801561013e575f80fd5b5061015261014d366004610f6d565b6103b0565b6040516001600160e01b0319909116815260200161012a565b61017e610179366004611004565b610422565b60405190815260200161012a565b348015610197575f80fd5b5061017e5f805160206111dc83398151915281565b3480156101b7575f80fd5b5061017e6101c636600461107c565b5f9081526020819052604090206001015490565b3480156101e5575f80fd5b506100fd6101f4366004611093565b61096c565b348015610204575f80fd5b506100fd61021336600461107c565b610996565b348015610223575f80fd5b506100fd610232366004611093565b610d0c565b348015610242575f80fd5b5061026a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012a565b34801561028d575f80fd5b5061011e61029c366004611093565b610d3f565b3480156102ac575f80fd5b5061017e5f81565b3480156102bf575f80fd5b506102fa6102ce36600461107c565b60026020525f90815260409020805460019091015460ff82169161010090046001600160a01b03169083565b60405161012a939291906110d5565b348015610314575f80fd5b506100fd610323366004611093565b610d67565b348015610333575f80fd5b5061017e7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d81565b348015610366575f80fd5b506100fd61037536600461111f565b610d8b565b5f6001600160e01b03198216637965db0b60e01b14806103aa57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6103c85f805160206111dc83398151915233610d3f565b6104105760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b5f816020015161043f5f805160206111dc83398151915282610d3f565b6104825760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610407565b6001805f828254610493919061114b565b909155505f9050835160018111156104ad576104ad6110c1565b0361066c5760208301516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e919061116a565b905083602001516001600160a01b03166323b872dd303387604001516040518463ffffffff1660e01b815260040161055893929190611181565b6020604051808303815f875af1158015610574573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059891906111a5565b5060208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610605919061116a565b9050846040015182610617919061114b565b81146106655760405162461bcd60e51b815260206004820152601a60248201527f6572633230206465706f736974206e6f742072656365697665640000000000006044820152606401610407565b5050610889565b600183516001811115610681576106816110c1565b0361088957602083015160408085015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa1580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f991906111c0565b6001600160a01b03161461074f5760405162461bcd60e51b815260206004820152601f60248201527f73656e646572206e6f7420657263373231206465706f736974206f776e6572006044820152606401610407565b82602001516001600160a01b03166342842e0e303386604001516040518463ffffffff1660e01b815260040161078793929190611181565b5f604051808303815f87803b15801561079e575f80fd5b505af11580156107b0573d5f803e3d5ffd5b50505050306001600160a01b031683602001516001600160a01b0316636352211e85604001516040518263ffffffff1660e01b81526004016107f491815260200190565b602060405180830381865afa15801561080f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083391906111c0565b6001600160a01b0316146108895760405162461bcd60e51b815260206004820152601b60248201527f657263373231206465706f736974206e6f7420726563656976656400000000006044820152606401610407565b600180545f908152600260205260409020845181548693839160ff19169083818111156108b8576108b86110c1565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600192830155905491516340c10f1960e01b815233600482015260248101929092527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015f604051808303815f87803b15801561094c575f80fd5b505af115801561095e573d5f803e3d5ffd5b505060015495945050505050565b5f8281526020819052604090206001015461098681610de9565b6109908383610df6565b50505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2191906111c0565b6001600160a01b031614610a775760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206465706f73697420746f6b656e206f776e657200006044820152606401610407565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610ac790339030908790600401611181565b5f604051808303815f87803b158015610ade575f80fd5b505af1158015610af0573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610b53575f80fd5b505af1158015610b65573d5f803e3d5ffd5b5050505f8381526002602052604080822081516060810190925280549293509091829060ff166001811115610b9c57610b9c6110c1565b6001811115610bad57610bad6110c1565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301525f878152600290915290812080546001600160a81b031916815590910181905590915081516001811115610c0a57610c0a6110c1565b03610c875780602001516001600160a01b03166323b872dd303384604001516040518463ffffffff1660e01b8152600401610c4793929190611181565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906111a5565b600181516001811115610c9c57610c9c6110c1565b03610d075780602001516001600160a01b03166342842e0e303384604001516040518463ffffffff1660e01b8152600401610cd993929190611181565b5f604051808303815f87803b158015610cf0575f80fd5b505af1158015610d02573d5f803e3d5ffd5b505050505b505050565b6001600160a01b0381163314610d355760405163334bd91960e11b815260040160405180910390fd5b610d078282610e85565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f82815260208190526040902060010154610d8181610de9565b6109908383610e85565b7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d610db581610de9565b8115610dd257610d075f805160206111dc8339815191528461096c565b610d075f805160206111dc83398151915284610d67565b610df38133610eee565b50565b5f610e018383610d3f565b610e7e575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610e363390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103aa565b505f6103aa565b5f610e908383610d3f565b15610e7e575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103aa565b610ef88282610d3f565b610f275760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610407565b5050565b5f60208284031215610f3b575f80fd5b81356001600160e01b031981168114610f52575f80fd5b9392505050565b6001600160a01b0381168114610df3575f80fd5b5f805f805f60808688031215610f81575f80fd5b8535610f8c81610f59565b94506020860135610f9c81610f59565b935060408601359250606086013567ffffffffffffffff80821115610fbf575f80fd5b818801915088601f830112610fd2575f80fd5b813581811115610fe0575f80fd5b896020828501011115610ff1575f80fd5b9699959850939650602001949392505050565b5f60608284031215611014575f80fd5b6040516060810181811067ffffffffffffffff8211171561104357634e487b7160e01b5f52604160045260245ffd5b604052823560028110611054575f80fd5b8152602083013561106481610f59565b60208201526040928301359281019290925250919050565b5f6020828403121561108c575f80fd5b5035919050565b5f80604083850312156110a4575f80fd5b8235915060208301356110b681610f59565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b60608101600285106110f557634e487b7160e01b5f52602160045260245ffd5b9381526001600160a01b0392909216602083015260409091015290565b8015158114610df3575f80fd5b5f8060408385031215611130575f80fd5b823561113b81610f59565b915060208301356110b681611112565b808201808211156103aa57634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561117a575f80fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156111b5575f80fd5b8151610f5281611112565b5f602082840312156111d0575f80fd5b8151610f5281610f5956fe1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1a26469706673582212208c4a6dea21eebf339e77740ed73353a541135c4faf6007b2ca8aa25427762b5264736f6c63430008140033cbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1","sourceMap":"570:5491:47:-:0;;;1588:479;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1799:88;;-1:-1:-1;;;1799:88:47;;640:2:76;1799:88:47;;;622:21:76;679:2;659:18;;;652:30;;;719:34;698:19;;;691:63;-1:-1:-1;;;770:19:76;;;763:35;836:3;814:20;;;807:33;877:1;856:19;;;849:30;-1:-1:-1;;;895:19:76;;;888:38;1881:4:47;978:18:76;;;971:60;1683:21:47;;-1:-1:-1;;;;;1799:22:47;;;;;943:19:76;;1799:88:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1769:118:47;;;1898:38;-1:-1:-1;;;;;;;;;;;1925:10:47;1898;:38::i;:::-;;1946:57;-1:-1:-1;;;;;;;;;;;1975:27:47;;1946:10;;;:57;;:::i;:::-;-1:-1:-1;2013:47:47;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2013:13:47;:47::i;:::-;1631:436;1588:479;570:5491;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:728::-;570:5491:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100eb575f3560e01c806336568abe11610089578063b02c43d011610058578063b02c43d0146102b4578063d547741f14610309578063e84532a114610328578063e8ee60021461035b576100f2565b806336568abe146102185780636072e5771461023757806391d1485414610282578063a217fddf146102a1576100f2565b80631e984822116100c55780631e9848221461018c578063248a9ca3146101ac5780632f2ff15d146101da57806331a64434146101f9576100f2565b806301ffc9a7146100ff578063150b7a02146101335780631dc7e3a41461016b576100f2565b366100f257005b3480156100fd575f80fd5b005b34801561010a575f80fd5b5061011e610119366004610f2b565b61037a565b60405190151581526020015b60405180910390f35b34801561013e575f80fd5b5061015261014d366004610f6d565b6103b0565b6040516001600160e01b0319909116815260200161012a565b61017e610179366004611004565b610422565b60405190815260200161012a565b348015610197575f80fd5b5061017e5f805160206111dc83398151915281565b3480156101b7575f80fd5b5061017e6101c636600461107c565b5f9081526020819052604090206001015490565b3480156101e5575f80fd5b506100fd6101f4366004611093565b61096c565b348015610204575f80fd5b506100fd61021336600461107c565b610996565b348015610223575f80fd5b506100fd610232366004611093565b610d0c565b348015610242575f80fd5b5061026a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012a565b34801561028d575f80fd5b5061011e61029c366004611093565b610d3f565b3480156102ac575f80fd5b5061017e5f81565b3480156102bf575f80fd5b506102fa6102ce36600461107c565b60026020525f90815260409020805460019091015460ff82169161010090046001600160a01b03169083565b60405161012a939291906110d5565b348015610314575f80fd5b506100fd610323366004611093565b610d67565b348015610333575f80fd5b5061017e7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d81565b348015610366575f80fd5b506100fd61037536600461111f565b610d8b565b5f6001600160e01b03198216637965db0b60e01b14806103aa57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6103c85f805160206111dc83398151915233610d3f565b6104105760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b5f816020015161043f5f805160206111dc83398151915282610d3f565b6104825760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610407565b6001805f828254610493919061114b565b909155505f9050835160018111156104ad576104ad6110c1565b0361066c5760208301516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e919061116a565b905083602001516001600160a01b03166323b872dd303387604001516040518463ffffffff1660e01b815260040161055893929190611181565b6020604051808303815f875af1158015610574573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059891906111a5565b5060208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610605919061116a565b9050846040015182610617919061114b565b81146106655760405162461bcd60e51b815260206004820152601a60248201527f6572633230206465706f736974206e6f742072656365697665640000000000006044820152606401610407565b5050610889565b600183516001811115610681576106816110c1565b0361088957602083015160408085015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa1580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f991906111c0565b6001600160a01b03161461074f5760405162461bcd60e51b815260206004820152601f60248201527f73656e646572206e6f7420657263373231206465706f736974206f776e6572006044820152606401610407565b82602001516001600160a01b03166342842e0e303386604001516040518463ffffffff1660e01b815260040161078793929190611181565b5f604051808303815f87803b15801561079e575f80fd5b505af11580156107b0573d5f803e3d5ffd5b50505050306001600160a01b031683602001516001600160a01b0316636352211e85604001516040518263ffffffff1660e01b81526004016107f491815260200190565b602060405180830381865afa15801561080f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083391906111c0565b6001600160a01b0316146108895760405162461bcd60e51b815260206004820152601b60248201527f657263373231206465706f736974206e6f7420726563656976656400000000006044820152606401610407565b600180545f908152600260205260409020845181548693839160ff19169083818111156108b8576108b86110c1565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600192830155905491516340c10f1960e01b815233600482015260248101929092527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015f604051808303815f87803b15801561094c575f80fd5b505af115801561095e573d5f803e3d5ffd5b505060015495945050505050565b5f8281526020819052604090206001015461098681610de9565b6109908383610df6565b50505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2191906111c0565b6001600160a01b031614610a775760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206465706f73697420746f6b656e206f776e657200006044820152606401610407565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610ac790339030908790600401611181565b5f604051808303815f87803b158015610ade575f80fd5b505af1158015610af0573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610b53575f80fd5b505af1158015610b65573d5f803e3d5ffd5b5050505f8381526002602052604080822081516060810190925280549293509091829060ff166001811115610b9c57610b9c6110c1565b6001811115610bad57610bad6110c1565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301525f878152600290915290812080546001600160a81b031916815590910181905590915081516001811115610c0a57610c0a6110c1565b03610c875780602001516001600160a01b03166323b872dd303384604001516040518463ffffffff1660e01b8152600401610c4793929190611181565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906111a5565b600181516001811115610c9c57610c9c6110c1565b03610d075780602001516001600160a01b03166342842e0e303384604001516040518463ffffffff1660e01b8152600401610cd993929190611181565b5f604051808303815f87803b158015610cf0575f80fd5b505af1158015610d02573d5f803e3d5ffd5b505050505b505050565b6001600160a01b0381163314610d355760405163334bd91960e11b815260040160405180910390fd5b610d078282610e85565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f82815260208190526040902060010154610d8181610de9565b6109908383610e85565b7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d610db581610de9565b8115610dd257610d075f805160206111dc8339815191528461096c565b610d075f805160206111dc83398151915284610d67565b610df38133610eee565b50565b5f610e018383610d3f565b610e7e575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610e363390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103aa565b505f6103aa565b5f610e908383610d3f565b15610e7e575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103aa565b610ef88282610d3f565b610f275760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610407565b5050565b5f60208284031215610f3b575f80fd5b81356001600160e01b031981168114610f52575f80fd5b9392505050565b6001600160a01b0381168114610df3575f80fd5b5f805f805f60808688031215610f81575f80fd5b8535610f8c81610f59565b94506020860135610f9c81610f59565b935060408601359250606086013567ffffffffffffffff80821115610fbf575f80fd5b818801915088601f830112610fd2575f80fd5b813581811115610fe0575f80fd5b896020828501011115610ff1575f80fd5b9699959850939650602001949392505050565b5f60608284031215611014575f80fd5b6040516060810181811067ffffffffffffffff8211171561104357634e487b7160e01b5f52604160045260245ffd5b604052823560028110611054575f80fd5b8152602083013561106481610f59565b60208201526040928301359281019290925250919050565b5f6020828403121561108c575f80fd5b5035919050565b5f80604083850312156110a4575f80fd5b8235915060208301356110b681610f59565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b60608101600285106110f557634e487b7160e01b5f52602160045260245ffd5b9381526001600160a01b0392909216602083015260409091015290565b8015158114610df3575f80fd5b5f8060408385031215611130575f80fd5b823561113b81610f59565b915060208301356110b681611112565b808201808211156103aa57634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561117a575f80fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156111b5575f80fd5b8151610f5281611112565b5f602082840312156111d0575f80fd5b8151610f5281610f5956fe1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1a26469706673582212208c4a6dea21eebf339e77740ed73353a541135c4faf6007b2ca8aa25427762b5264736f6c63430008140033","sourceMap":"570:5491:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:76;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;4594:1401:47;;;;;;;;;;-1:-1:-1;4594:1401:47;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1736:33:76;;;1718:52;;1706:2;1691:18;4594:1401:47;1574:202:76;2349:1364:47;;;;;;:::i;:::-;;:::i;:::-;;;2758:25:76;;;2746:2;2731:18;2349:1364:47;2612:177:76;1262:72:47;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:72:47;;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;4226:136;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;3719:869:47:-;;;;;;;;;;-1:-1:-1;3719:869:47;;;;;:::i;:::-;;:::i;5328:245:0:-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;1341:52:47:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3830:32:76;;;3812:51;;3800:2;3785:18;1341:52:47;3666:203:76;2854:136:0;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;2187:49::-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;1488:52:47;;;;;;;;;;-1:-1:-1;1488:52:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1488:52:47;;;;;;;;;;;;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;1188:68:47:-;;;;;;;;;;;;1229:27;1188:68;;2073:270;;;;;;;;;;-1:-1:-1;2073:270:47;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;4594:1401:47:-;4708:6;4734:37;-1:-1:-1;;;;;;;;;;;4760:10:47;4734:7;:37::i;:::-;4726:70;;;;-1:-1:-1;;;4726:70:47;;5237:2:76;4726:70:47;;;5219:21:76;5276:2;5256:18;;;5249:30;-1:-1:-1;;;5295:18:76;;;5288:50;5355:18;;4726:70:47;;;;;;;;;-1:-1:-1;;;;4594:1401:47;;;;;;;:::o;2349:1364::-;2474:7;2440;:23;;;898:42;-1:-1:-1;;;;;;;;;;;924:15:47;898:7;:42::i;:::-;890:75;;;;-1:-1:-1;;;890:75:47;;5237:2:76;890:75:47;;;5219:21:76;5276:2;5256:18;;;5249:30;-1:-1:-1;;;5295:18:76;;;5288:50;5355:18;;890:75:47;5035:344:76;890:75:47;2511:1:::1;2493:14:::0;::::1;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;2609:18:47::1;::::0;-1:-1:-1;2585:20:47;;:42:::1;::::0;::::1;;;;;;:::i;:::-;::::0;2581:910:::1;;2671:23;::::0;::::1;::::0;2664:56:::1;::::0;-1:-1:-1;;;2664:56:47;;2714:4:::1;2664:56;::::0;::::1;3812:51:76::0;2643:18:47::1;::::0;-1:-1:-1;;;;;2664:41:47::1;::::0;::::1;::::0;3785:18:76;;2664:56:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2643:77;;2741:7;:23;;;-1:-1:-1::0;;;;;2734:44:47::1;;2787:4;2794:10;2806:7;:23;;;2734:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;2873:23:47::1;::::0;::::1;::::0;2866:56:::1;::::0;-1:-1:-1;;;2866:56:47;;2916:4:::1;2866:56;::::0;::::1;3812:51:76::0;2844:19:47::1;::::0;-1:-1:-1;;;;;2866:41:47::1;::::0;::::1;::::0;3785:18:76;;2866:56:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2844:78;;2972:7;:23;;;2959:10;:36;;;;:::i;:::-;2944:11;:51;2936:90;;;::::0;-1:-1:-1;;;2936:90:47;;6632:2:76;2936:90:47::1;::::0;::::1;6614:21:76::0;6671:2;6651:18;;;6644:30;6710:28;6690:18;;;6683:56;6756:18;;2936:90:47::1;6430:350:76::0;2936:90:47::1;2629:408;;2581:910;;;3071:19;3047:20:::0;;:43:::1;::::0;::::1;;;;;;:::i;:::-;::::0;3043:448:::1;;3122:23;::::0;::::1;::::0;3155::::1;::::0;;::::1;::::0;3114:65;;-1:-1:-1;;;3114:65:47;;::::1;::::0;::::1;2758:25:76::0;;;;3183:10:47::1;::::0;-1:-1:-1;;;;;3114:40:47::1;::::0;::::1;::::0;2731:18:76;;3114:65:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3114:79:47::1;;3106:123;;;::::0;-1:-1:-1;;;3106:123:47;;7243:2:76;3106:123:47::1;::::0;::::1;7225:21:76::0;7282:2;7262:18;;;7255:30;7321:33;7301:18;;;7294:61;7372:18;;3106:123:47::1;7041:355:76::0;3106:123:47::1;3251:7;:23;;;-1:-1:-1::0;;;;;3243:49:47::1;;3301:4;3308:10;3320:7;:23;;;3243:101;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3443:4;-1:-1:-1::0;;;;;3366:82:47::1;3374:7;:23;;;-1:-1:-1::0;;;;;3366:40:47::1;;3407:7;:23;;;3366:65;;;;;;;;;;;;;2758:25:76::0;;2746:2;2731:18;;2612:177;3366:65:47::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3366:82:47::1;;3358:122;;;::::0;-1:-1:-1;;;3358:122:47;;7603:2:76;3358:122:47::1;::::0;::::1;7585:21:76::0;7642:2;7622:18;;;7615:30;7681:29;7661:18;;;7654:57;7728:18;;3358:122:47::1;7401:351:76::0;3358:122:47::1;3539:14;::::0;;3530:24:::1;::::0;;;:8:::1;:24;::::0;;;;:34;;;;3557:7;;3530:24;;-1:-1:-1;;3530:34:47::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;3530:34:47::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;3530:34:47::1;;-1:-1:-1::0;;;;;3530:34:47;;::::1;;;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;3530:34:47;;::::1;::::0;3659:14;;3604:70;;-1:-1:-1;;;3604:70:47;;3647:10:::1;3604:70;::::0;::::1;7931:51:76::0;7998:18;;;7991:34;;;;3613:27:47::1;3604:42;::::0;::::1;::::0;7904:18:76;;3604:70:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3692:14:47::1;::::0;;2349:1364;-1:-1:-1;;;;;2349:1364:47:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;3719:869:47:-;693:60;;-1:-1:-1;;;693:60:47;;;;;2758:25:76;;;3790:14:47;;757:10;;-1:-1:-1;;;;;701:27:47;693:44;;;;2731:18:76;;693:60:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;693:74:47;;685:117;;;;-1:-1:-1;;;685:117:47;;8238:2:76;685:117:47;;;8220:21:76;8277:2;8257:18;;;8250:30;8316:32;8296:18;;;8289:60;8366:18;;685:117:47;8036:354:76;685:117:47;3881:95:::1;::::0;-1:-1:-1;;;3881:95:47;;-1:-1:-1;;;;;3889:27:47::1;3881:53;::::0;::::1;::::0;:95:::1;::::0;3935:10:::1;::::0;3955:4:::1;::::0;3961:14;;3881:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4016:58:47::1;::::0;-1:-1:-1;;;4016:58:47;;::::1;::::0;::::1;2758:25:76::0;;;4025:27:47::1;-1:-1:-1::0;;;;;4016:42:47::1;::::0;-1:-1:-1;4016:42:47::1;::::0;-1:-1:-1;2731:18:76;;4016:58:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;4085:31:47::1;4119:24:::0;;;:8:::1;:24;::::0;;;;;4085:58;;::::1;::::0;::::1;::::0;;;;;:31;;-1:-1:-1;4085:58:47;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;4085:58:47::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;4160:24:47;;;:8:::1;:24:::0;;;;;;4153:31;;-1:-1:-1;;;;;;4153:31:47;;;;;::::1;::::0;;;4085:58;;-1:-1:-1;4236:20:47;;:42:::1;::::0;::::1;;;;;;:::i;:::-;::::0;4232:350:::1;;4301:7;:23;;;-1:-1:-1::0;;;;;4294:44:47::1;;4347:4;4354:10;4366:7;:23;;;4294:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4232:350::-;4435:19;4411:20:::0;;:43:::1;::::0;::::1;;;;;;:::i;:::-;::::0;4407:175:::1;;4478:7;:23;;;-1:-1:-1::0;;;;;4470:49:47::1;;4528:4;4535:10;4547:7;:23;;;4470:101;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4407:175;3806:782;3719:869:::0;;:::o;5328:245:0:-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;2854:136::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;4642:138::-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2073:270:47:-:0;1229:27;2464:16:0;2475:4;2464:10;:16::i;:::-;2183:7:47::1;2179:158;;;2206:44;-1:-1:-1::0;;;;;;;;;;;2234:15:47::1;2206:9;:44::i;2179:158::-;2281:45;-1:-1:-1::0;;;;;;;;;;;2310:15:47::1;2281:10;:45::i;3199:103:0:-:0;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;3432:197;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;7949:32:76;;3565:47:0;;;7931:51:76;7998:18;;;7991:34;;;7904:18;;3565:47:0;7757:274:76;3515:108:0;3432:197;;:::o;14:286:76:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:76;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:76:o;497:131::-;-1:-1:-1;;;;;572:31:76;;562:42;;552:70;;618:1;615;608:12;633:936;730:6;738;746;754;762;815:3;803:9;794:7;790:23;786:33;783:53;;;832:1;829;822:12;783:53;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:76;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;-1:-1:-1;1116:2:76;1101:18;;1088:32;;-1:-1:-1;1171:2:76;1156:18;;1143:32;1194:18;1224:14;;;1221:34;;;1251:1;1248;1241:12;1221:34;1289:6;1278:9;1274:22;1264:32;;1334:7;1327:4;1323:2;1319:13;1315:27;1305:55;;1356:1;1353;1346:12;1305:55;1396:2;1383:16;1422:2;1414:6;1411:14;1408:34;;;1438:1;1435;1428:12;1408:34;1483:7;1478:2;1469:6;1465:2;1461:15;1457:24;1454:37;1451:57;;;1504:1;1501;1494:12;1451:57;633:936;;;;-1:-1:-1;633:936:76;;-1:-1:-1;1535:2:76;1527:11;;1557:6;633:936;-1:-1:-1;;;633:936:76:o;1781:826::-;1875:6;1928:2;1916:9;1907:7;1903:23;1899:32;1896:52;;;1944:1;1941;1934:12;1896:52;1977:2;1971:9;2019:2;2011:6;2007:15;2088:6;2076:10;2073:22;2052:18;2040:10;2037:34;2034:62;2031:185;;;2138:10;2133:3;2129:20;2126:1;2119:31;2173:4;2170:1;2163:15;2201:4;2198:1;2191:15;2031:185;2232:2;2225:22;2269:23;;2321:1;2311:12;;2301:40;;2337:1;2334;2327:12;2301:40;2350:21;;2423:2;2408:18;;2395:32;2436:33;2395:32;2436:33;:::i;:::-;2497:2;2485:15;;2478:32;2571:2;2556:18;;;2543:32;2526:15;;;2519:57;;;;-1:-1:-1;2489:6:76;1781:826;-1:-1:-1;1781:826:76:o;2976:180::-;3035:6;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;-1:-1:-1;3127:23:76;;2976:180;-1:-1:-1;2976:180:76:o;3161:315::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3342:9;3329:23;3319:33;;3402:2;3391:9;3387:18;3374:32;3415:31;3440:5;3415:31;:::i;:::-;3465:5;3455:15;;;3161:315;;;;;:::o;3874:127::-;3935:10;3930:3;3926:20;3923:1;3916:31;3966:4;3963:1;3956:15;3990:4;3987:1;3980:15;4006:514;4212:2;4197:18;;4245:1;4234:13;;4224:144;;4290:10;4285:3;4281:20;4278:1;4271:31;4325:4;4322:1;4315:15;4353:4;4350:1;4343:15;4224:144;4377:25;;;-1:-1:-1;;;;;4438:32:76;;;;4433:2;4418:18;;4411:60;4502:2;4487:18;;;4480:34;4006:514;:::o;4525:118::-;4611:5;4604:13;4597:21;4590:5;4587:32;4577:60;;4633:1;4630;4623:12;4648:382;4713:6;4721;4774:2;4762:9;4753:7;4749:23;4745:32;4742:52;;;4790:1;4787;4780:12;4742:52;4829:9;4816:23;4848:31;4873:5;4848:31;:::i;:::-;4898:5;-1:-1:-1;4955:2:76;4940:18;;4927:32;4968:30;4927:32;4968:30;:::i;5384:222::-;5449:9;;;5470:10;;;5467:133;;;5522:10;5517:3;5513:20;5510:1;5503:31;5557:4;5554:1;5547:15;5585:4;5582:1;5575:15;5611:184;5681:6;5734:2;5722:9;5713:7;5709:23;5705:32;5702:52;;;5750:1;5747;5740:12;5702:52;-1:-1:-1;5773:16:76;;5611:184;-1:-1:-1;5611:184:76:o;5800:375::-;-1:-1:-1;;;;;6058:15:76;;;6040:34;;6110:15;;;;6105:2;6090:18;;6083:43;6157:2;6142:18;;6135:34;;;;5990:2;5975:18;;5800:375::o;6180:245::-;6247:6;6300:2;6288:9;6279:7;6275:23;6271:32;6268:52;;;6316:1;6313;6306:12;6268:52;6348:9;6342:16;6367:28;6389:5;6367:28;:::i;6785:251::-;6855:6;6908:2;6896:9;6887:7;6883:23;6879:32;6876:52;;;6924:1;6921;6914:12;6876:52;6956:9;6950:16;6975:31;7000:5;6975:31;:::i","linkReferences":{},"immutableReferences":{"50180":[{"start":584,"length":32},{"start":2315,"length":32},{"start":2488,"length":32},{"start":2702,"length":32},{"start":2824,"length":32}]}},"methodIdentifiers":{"ALLOWED_CONTRACT()":"1e984822","DEFAULT_ADMIN_ROLE()":"a217fddf","TREASURY_OWNER()":"e84532a1","createDeposit((uint8,address,uint256))":"1dc7e3a4","depositTokenContractAddress()":"6072e577","deposits(uint256)":"b02c43d0","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","onERC721Received(address,address,uint256,bytes)":"150b7a02","redeemDeposit(uint256)":"31a64434","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateAllowlist(address,bool)":"e8ee6002"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721FactoryAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ALLOWED_CONTRACT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum OGRETokenizedTreasury.ContractType\",\"name\":\"contractType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedTreasury.TokenizedDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"createDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"enum OGRETokenizedTreasury.ContractType\",\"name\":\"contractType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"depositTokenId\",\"type\":\"uint256\"}],\"name\":\"redeemDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"updateAllowlist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine Tokenized Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETokenizedTreasury.sol\":\"OGRETokenizedTreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETokenizedTreasury.sol\":{\"keccak256\":\"0x0990fb8890a47a8ef4d4433ce80827950efb688a236dd90beff746a4ca779820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbfbebca4f365f1e3c597fcfa53ab8e12aba236ca33c83383a7f0a0141e76f9e\",\"dweb:/ipfs/QmaPCXP1m94Vas6br1QXDqeFKJjaAznBa21E6Hq9XHCfC6\"]},\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"erc721FactoryAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLOWED_CONTRACT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct OGRETokenizedTreasury.TokenizedDeposit","name":"deposit","type":"tuple","components":[{"internalType":"enum OGRETokenizedTreasury.ContractType","name":"contractType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"createDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"enum OGRETokenizedTreasury.ContractType","name":"contractType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"uint256","name":"depositTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeemDeposit"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateAllowlist"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETokenizedTreasury.sol":"OGRETokenizedTreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETokenizedTreasury.sol":{"keccak256":"0x0990fb8890a47a8ef4d4433ce80827950efb688a236dd90beff746a4ca779820","urls":["bzz-raw://fbfbebca4f365f1e3c597fcfa53ab8e12aba236ca33c83383a7f0a0141e76f9e","dweb:/ipfs/QmaPCXP1m94Vas6br1QXDqeFKJjaAznBa21E6Hq9XHCfC6"],"license":"UNLICENSED"},"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":47} \ No newline at end of file diff --git a/out/OGRETreasury.sol/OGRETreasury.json b/out/OGRETreasury.sol/OGRETreasury.json new file mode 100644 index 0000000..1aadfc7 --- /dev/null +++ b/out/OGRETreasury.sol/OGRETreasury.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033","sourceMap":"484:1207:48:-:0;;;580:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;621:11;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;455:51:76;428:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;644:24:48::1;;::::0;484:1207;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:203::-;484:1207:48;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033","sourceMap":"484:1207:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:568;;;;;;;;;;-1:-1:-1;681:568:48;;;;;:::i;:::-;-1:-1:-1;;;681:568:48;;;;;;;;;;;-1:-1:-1;;;;;;1167:33:76;;;1149:52;;1137:2;1122:18;681:568:48;;;;;;;;534:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1376:32:76;;;1358:51;;1346:2;1331:18;534:35:48;1212:203:76;1726:84:14;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;1585:14:76;;1578:22;1560:41;;1548:2;1533:18;1726:84:14;1420:187:76;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;1255:370:48;;;;;;;;;;-1:-1:-1;1255:370:48;;;;;:::i;:::-;;:::i;2543:215:2:-;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1255:370:48:-;1493:68;;-1:-1:-1;;;1493:68:48;;1542:4;1493:68;;;2376:34:76;-1:-1:-1;;;;;2446:15:76;;;2426:18;;;2419:43;2478:18;;;2471:34;;;1493:40:48;;;;;2311:18:76;;1493:68:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:370;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1358:51:76::0;1331:18;;2672:31:2::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1358:51:76;1331:18;;1901:40:2;1212:203:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:808::-;289:6;297;305;313;321;374:3;362:9;353:7;349:23;345:33;342:53;;;391:1;388;381:12;342:53;414:29;433:9;414:29;:::i;:::-;404:39;;462:38;496:2;485:9;481:18;462:38;:::i;:::-;452:48;;547:2;536:9;532:18;519:32;509:42;;602:2;591:9;587:18;574:32;625:18;666:2;658:6;655:14;652:34;;;682:1;679;672:12;652:34;720:6;709:9;705:22;695:32;;765:7;758:4;754:2;750:13;746:27;736:55;;787:1;784;777:12;736:55;827:2;814:16;853:2;845:6;842:14;839:34;;;869:1;866;859:12;839:34;914:7;909:2;900:6;896:2;892:15;888:24;885:37;882:57;;;935:1;932;925:12;882:57;192:808;;;;-1:-1:-1;192:808:76;;-1:-1:-1;966:2:76;958:11;;988:6;192:808;-1:-1:-1;;;192:808:76:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;1945:186::-;2004:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:52;;;2073:1;2070;2063:12;2025:52;2096:29;2115:9;2096:29;:::i;:::-;2086:39;1945:186;-1:-1:-1;;;1945:186:76:o","linkReferences":{},"immutableReferences":{"50533":[{"start":225,"length":32}]}},"methodIdentifiers":{"daoAddress()":"2131c68c","onERC721Received(address,address,uint256,bytes)":"150b7a02","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","sendERC721(address,address,uint256)":"b72ac8ea","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETreasury.sol\":\"OGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c\",\"dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETreasury.sol":"OGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0","urls":["bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c","dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ"],"license":"UNLICENSED"}},"version":1},"id":48} \ No newline at end of file diff --git a/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json b/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json new file mode 100644 index 0000000..119335a --- /dev/null +++ b/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f0b4a1c9163c196895723a1f34414fff6cc04d7d184d9ed360f0880b25a57d7e69060200160405180910390a16106e1806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610129565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d9061011c565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610156565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a192915050565b6105308061017c83390190565b5f60208284031215610139575f80fd5b81356001600160a01b038116811461014f575f80fd5b9392505050565b8082018082111561017557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033a2646970667358221220ce1ada20b383cb52c02ab3ecb854c364051cc962b9b22f94f03137cf96eb2df464736f6c63430008140033","sourceMap":"183:487:60:-:0;;;308:70;;;;;;;;;-1:-1:-1;337:34:60;;360:10;160:51:76;;337:34:60;;148:2:76;133:18;337:34:60;;;;;;;183:487;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610129565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d9061011c565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610156565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a192915050565b6105308061017c83390190565b5f60208284031215610139575f80fd5b81356001600160a01b038116811461014f575f80fd5b9392505050565b8082018082111561017557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033a2646970667358221220ce1ada20b383cb52c02ab3ecb854c364051cc962b9b22f94f03137cf96eb2df464736f6c63430008140033","sourceMap":"183:487:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;384:284:60;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;651:32:76;;;633:51;;621:2;606:18;384:284:60;487:203:76;384:284:60;449:7;468:21;509:10;492:28;;;;;:::i;:::-;-1:-1:-1;;;;;651:32:76;;;633:51;;621:2;606:18;492:28:60;;;;;;;;;;;;;;;;;;;;;;;468:52;;549:1;530:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;565:62:60;;;-1:-1:-1;;;;;1180:15:76;;1162:34;;609:4:60;1227:2:76;1212:18;;1205:43;616:10:60;1264:18:76;;;1257:43;565:62:60;;;;;;;1112:2:76;565:62:60;;;652:8;384:284;-1:-1:-1;;384:284:60:o;-1:-1:-1:-;;;;;;;;:::o;196:286:76:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;350:23;;-1:-1:-1;;;;;402:31:76;;392:42;;382:70;;448:1;445;438:12;382:70;471:5;196:286;-1:-1:-1;;;196:286:76:o;695:222::-;760:9;;;781:10;;;778:133;;;833:10;828:3;824:20;821:1;814:31;868:4;865:1;858:15;896:4;893:1;886:15;778:133;695:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"TreasuryFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRETreasuryFactory.sol\":\"OGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c\",\"dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRETreasuryFactory.sol\":{\"keccak256\":\"0x603a437fabbbb49afd0c74234ee9b28082d14c04348e793550fb5b61b2cfff9a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d69ee65cf9db97d07eb0b66f1b1d5e1b7ebc6a822406dbc889e745dd6a7a8dcc\",\"dweb:/ipfs/QmPTsFayiKVmJszxEEsYwDUtRoPvxttLh1cSxbrfER7jSJ\"]},\"src/interfaces/IOGRETreasuryFactory.sol\":{\"keccak256\":\"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732\",\"dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"TreasuryFactoryCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRETreasuryFactory.sol":"OGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0","urls":["bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c","dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRETreasuryFactory.sol":{"keccak256":"0x603a437fabbbb49afd0c74234ee9b28082d14c04348e793550fb5b61b2cfff9a","urls":["bzz-raw://d69ee65cf9db97d07eb0b66f1b1d5e1b7ebc6a822406dbc889e745dd6a7a8dcc","dweb:/ipfs/QmPTsFayiKVmJszxEEsYwDUtRoPvxttLh1cSxbrfER7jSJ"],"license":"UNLICENSED"},"src/interfaces/IOGRETreasuryFactory.sol":{"keccak256":"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6","urls":["bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732","dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX"],"license":"UNLICENSED"}},"version":1},"id":60} \ No newline at end of file diff --git a/out/Ownable.sol/Ownable.json b/out/Ownable.sol/Ownable.json new file mode 100644 index 0000000..7c1ffbb --- /dev/null +++ b/out/Ownable.sol/Ownable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":2} \ No newline at end of file diff --git a/out/Panic.sol/Panic.json b/out/Panic.sol/Panic.json new file mode 100644 index 0000000..01e6963 --- /dev/null +++ b/out/Panic.sol/Panic.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010d328d4e4ae843cf9062ce79606f406a983334dc12cef486559dcd20dc87f3b64736f6c63430008140033","sourceMap":"657:1315:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:13;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010d328d4e4ae843cf9062ce79606f406a983334dc12cef486559dcd20dc87f3b64736f6c63430008140033","sourceMap":"657:1315:13:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":"Panic"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/Pausable.sol/Pausable.json b/out/Pausable.sol/Pausable.json new file mode 100644 index 0000000..6750f2c --- /dev/null +++ b/out/Pausable.sol/Pausable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":"Pausable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/ReentrancyGuard.sol/ReentrancyGuard.json b/out/ReentrancyGuard.sol/ReentrancyGuard.json new file mode 100644 index 0000000..e4674a8 --- /dev/null +++ b/out/ReentrancyGuard.sol/ReentrancyGuard.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/out/SafeCast.sol/SafeCast.json b/out/SafeCast.sol/SafeCast.json new file mode 100644 index 0000000..2d29bd4 --- /dev/null +++ b/out/SafeCast.sol/SafeCast.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"SafeCastOverflowedIntDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedIntToUint","inputs":[{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeCastOverflowedUintToInt","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e3ba180471796f6fb8bf5adf3d8fc418149f234b0e1dc423d8cd3946872b06a64736f6c63430008140033","sourceMap":"769:34173:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:20;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e3ba180471796f6fb8bf5adf3d8fc418149f234b0e1dc423d8cd3946872b06a64736f6c63430008140033","sourceMap":"769:34173:20:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntDowncast"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntToUint"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintToInt"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":"SafeCast"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/SignedMath.sol/SignedMath.json b/out/SignedMath.sol/SignedMath.json new file mode 100644 index 0000000..9f79494 --- /dev/null +++ b/out/SignedMath.sol/SignedMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cb6c0bc1896b42d81b7463606635578c08cd5bd41180c19016db8d3f51c354a964736f6c63430008140033","sourceMap":"258:2354:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:21;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cb6c0bc1896b42d81b7463606635578c08cd5bd41180c19016db8d3f51c354a964736f6c63430008140033","sourceMap":"258:2354:21:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/StdAssertions.sol/StdAssertions.json b/out/StdAssertions.sol/StdAssertions.json new file mode 100644 index 0000000..a41a74f --- /dev/null +++ b/out/StdAssertions.sol/StdAssertions.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/StdChains.sol/StdChains.json b/out/StdChains.sol/StdChains.json new file mode 100644 index 0000000..8b40490 --- /dev/null +++ b/out/StdChains.sol/StdChains.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheats.json b/out/StdCheats.sol/StdCheats.json new file mode 100644 index 0000000..6f7759e --- /dev/null +++ b/out/StdCheats.sol/StdCheats.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheatsSafe.json b/out/StdCheats.sol/StdCheatsSafe.json new file mode 100644 index 0000000..96c634e --- /dev/null +++ b/out/StdCheats.sol/StdCheatsSafe.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json new file mode 100644 index 0000000..3efc043 --- /dev/null +++ b/out/StdError.sol/stdError.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x610249610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009b575f3560e01c8063986c5f681161006e578063986c5f68146100d5578063b22dc54d146100dd578063b67689da146100e5578063d160e4de146100ed578063fa784a44146100f5575f80fd5b806305ee86121461009f57806310332977146100bd5780631de45560146100c55780638995290f146100cd575b5f80fd5b6100a76100fd565b6040516100b491906101c8565b60405180910390f35b6100a7610138565b6100a761014a565b6100a761015c565b6100a761016e565b6100a7610180565b6100a7610192565b6100a76101a4565b6100a76101b6565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010b565b6040516021602482015260440161010b565b6040516011602482015260440161010b565b6040516041602482015260440161010b565b6040516031602482015260440161010b565b6040516051602482015260440161010b565b6040516022602482015260440161010b565b6040516012602482015260440161010b565b5f6020808352835180828501525f5b818110156101f3578581018301518582016040015282016101d7565b505f604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203f962d64300ad26ad14f2ca796e7d8502b6efb9bae8b8c75aaa4732d7c032ed164736f6c63430008140033","sourceMap":"162:850:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:26;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009b575f3560e01c8063986c5f681161006e578063986c5f68146100d5578063b22dc54d146100dd578063b67689da146100e5578063d160e4de146100ed578063fa784a44146100f5575f80fd5b806305ee86121461009f57806310332977146100bd5780631de45560146100c55780638995290f146100cd575b5f80fd5b6100a76100fd565b6040516100b491906101c8565b60405180910390f35b6100a7610138565b6100a761014a565b6100a761015c565b6100a761016e565b6100a7610180565b6100a7610192565b6100a76101a4565b6100a76101b6565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010b565b6040516021602482015260440161010b565b6040516011602482015260440161010b565b6040516041602482015260440161010b565b6040516031602482015260440161010b565b6040516051602482015260440161010b565b6040516022602482015260440161010b565b6040516012602482015260440161010b565b5f6020808352835180828501525f5b818110156101f3578581018301518582016040015282016101d7565b505f604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203f962d64300ad26ad14f2ca796e7d8502b6efb9bae8b8c75aaa4732d7c032ed164736f6c63430008140033","sourceMap":"162:850:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:76;699:18;;778:47:26;;;;-1:-1:-1;;778:47:26;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:26;-1:-1:-1;;;778:47:26;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:76;699:18;;224:47:26;573:195:76;461:91:26;505:47;;547:4;505:47;;;726:36:76;699:18;;505:47:26;573:195:76;277:87:26;317:47;;359:4;317:47;;;726:36:76;699:18;;317:47:26;573:195:76;831:88:26;872:47;;914:4;872:47;;;726:36:76;699:18;;872:47:26;573:195:76;654:80:26;687:47;;729:4;687:47;;;726:36:76;699:18;;687:47:26;573:195:76;925:84:26;962:47;;1004:4;962:47;;;726:36:76;699:18;;962:47:26;573:195:76;558:90:26;601:47;;643:4;601:47;;;726:36:76;699:18;;601:47:26;573:195:76;370:85:26;408:47;;450:4;408:47;;;726:36:76;699:18;;408:47:26;573:195:76;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/StdInvariant.sol/StdInvariant.json b/out/StdInvariant.sol/StdInvariant.json new file mode 100644 index 0000000..4cfb18d --- /dev/null +++ b/out/StdInvariant.sol/StdInvariant.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":\"StdInvariant\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/out/StdJson.sol/stdJson.json b/out/StdJson.sol/stdJson.json new file mode 100644 index 0000000..dee3603 --- /dev/null +++ b/out/StdJson.sol/stdJson.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b67ab6628db86ad32f10b0ac10bf4226c8a4d9e28060053b7589c005d258657264736f6c63430008140033","sourceMap":"610:9092:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:9092:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b67ab6628db86ad32f10b0ac10bf4226c8a4d9e28060053b7589c005d258657264736f6c63430008140033","sourceMap":"610:9092:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":28} \ No newline at end of file diff --git a/out/StdMath.sol/stdMath.json b/out/StdMath.sol/stdMath.json new file mode 100644 index 0000000..1d865b9 --- /dev/null +++ b/out/StdMath.sol/stdMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf1ab13ab763d492e1b95650ea6de0bc706e5936c4756720f079a80ee6879c7264736f6c63430008140033","sourceMap":"65:1294:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf1ab13ab763d492e1b95650ea6de0bc706e5936c4756720f079a80ee6879c7264736f6c63430008140033","sourceMap":"65:1294:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorage.json b/out/StdStorage.sol/stdStorage.json new file mode 100644 index 0000000..816dc5e --- /dev/null +++ b/out/StdStorage.sol/stdStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220984f2f377ab4286b9db5969877269920ea51f45deaa4fadbd36c49a848ff958a64736f6c63430008140033","sourceMap":"12759:5081:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;12759:5081:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220984f2f377ab4286b9db5969877269920ea51f45deaa4fadbd36c49a848ff958a64736f6c63430008140033","sourceMap":"12759:5081:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":30} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorageSafe.json b/out/StdStorage.sol/stdStorageSafe.json new file mode 100644 index 0000000..206822d --- /dev/null +++ b/out/StdStorage.sol/stdStorageSafe.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122047fcb521fa462abfe2bd04eddfcffcdf22054b98e32edcc6c4db937a0cf95ef264736f6c63430008140033","sourceMap":"450:12307:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;450:12307:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122047fcb521fa462abfe2bd04eddfcffcdf22054b98e32edcc6c4db937a0cf95ef264736f6c63430008140033","sourceMap":"450:12307:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":30} \ No newline at end of file diff --git a/out/StdStyle.sol/StdStyle.json b/out/StdStyle.sol/StdStyle.json new file mode 100644 index 0000000..734871a --- /dev/null +++ b/out/StdStyle.sol/StdStyle.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208051b43d8d2e5f3f04e954fed7e70b4a45a126c3d7695af289ad4c7afc4bdd6c64736f6c63430008140033","sourceMap":"100:10361:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;100:10361:31;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208051b43d8d2e5f3f04e954fed7e70b4a45a126c3d7695af289ad4c7afc4bdd6c64736f6c63430008140033","sourceMap":"100:10361:31:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":31} \ No newline at end of file diff --git a/out/StdToml.sol/stdToml.json b/out/StdToml.sol/stdToml.json new file mode 100644 index 0000000..b1a8247 --- /dev/null +++ b/out/StdToml.sol/stdToml.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a1254bd5425cff2748442d844c245e57468147fd597bb332f9f1a697da6b7a8a64736f6c63430008140033","sourceMap":"610:9092:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:9092:32;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a1254bd5425cff2748442d844c245e57468147fd597bb332f9f1a697da6b7a8a64736f6c63430008140033","sourceMap":"610:9092:32:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":32} \ No newline at end of file diff --git a/out/StdUtils.sol/StdUtils.json b/out/StdUtils.sol/StdUtils.json new file mode 100644 index 0000000..e6e385e --- /dev/null +++ b/out/StdUtils.sol/StdUtils.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/out/Strings.sol/Strings.json b/out/Strings.sol/Strings.json new file mode 100644 index 0000000..3bc0e13 --- /dev/null +++ b/out/Strings.sol/Strings.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringsInvalidAddressFormat","inputs":[]},{"type":"error","name":"StringsInvalidChar","inputs":[]}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203fe70f2c2da600c3a5a2613686cbd9a389964f4db1b5b16a88e940fbd224e0d264736f6c63430008140033","sourceMap":"297:18980:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:18980:16;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203fe70f2c2da600c3a5a2613686cbd9a389964f4db1b5b16a88e940fbd224e0d264736f6c63430008140033","sourceMap":"297:18980:16:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidAddressFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidChar\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}],\"StringsInvalidAddressFormat()\":[{\"details\":\"The string being parsed is not a properly formatted address.\"}],\"StringsInvalidChar()\":[{\"details\":\"The string being parsed contains characters that are not in scope of the given base.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[],"type":"error","name":"StringsInvalidAddressFormat"},{"inputs":[],"type":"error","name":"StringsInvalidChar"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/Structs.sol/Structs.json b/out/Structs.sol/Structs.json new file mode 100644 index 0000000..569cd06 --- /dev/null +++ b/out/Structs.sol/Structs.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a283cf606d41fb79b03231b941b7831f841dcd1cce8b1e411c19c1fbb17619a564736f6c63430008140033","sourceMap":"101:1387:74:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;101:1387:74;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a283cf606d41fb79b03231b941b7831f841dcd1cce8b1e411c19c1fbb17619a564736f6c63430008140033","sourceMap":"101:1387:74:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Structs.sol\":\"Structs\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Structs.sol":"Structs"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":74} \ No newline at end of file diff --git a/out/StubActionHopper.sol/StubActionHopper.json b/out/StubActionHopper.sol/StubActionHopper.json new file mode 100644 index 0000000..d354ed1 --- /dev/null +++ b/out/StubActionHopper.sol/StubActionHopper.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"cancelAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161088938038061088983398101604081905261002e91610035565b5f5561004c565b5f60208284031215610045575f80fd5b5051919050565b610830806100595f395ff3fe608060405260043610610056575f3560e01c80627bcf6614610061578063313c7d5b1461008257806351ff2b74146100a1578063654f5c4e146100d55780636a42b8f8146100f45780636e8c7ab914610116575f80fd5b3661005d57005b5f80fd5b34801561006c575f80fd5b5061008061007b366004610570565b610144565b005b34801561008d575f80fd5b5061008061009c3660046105e9565b610157565b3480156100ac575f80fd5b506100c06100bb3660046105e9565b610164565b60405190151581526020015b60405180910390f35b3480156100e0575f80fd5b506100806100ef3660046105e9565b6101b1565b3480156100ff575f80fd5b506101085f5481565b6040519081526020016100cc565b348015610121575f80fd5b506100c0610130366004610669565b60016020525f908152604090205460ff1681565b610150848484846101c6565b5050505050565b610150858585858561026d565b5f80868686868660405160200161017f9594939291906106cd565b60408051808303601f1901815291815281516020928301205f908152600190925290205460ff16979650505050505050565b6101be85858585856102fc565b505050505050565b5f805f54426101d59190610718565b90505f86868686856040516020016101f19594939291906106cd565b60408051601f1981840301815282825280516020918201205f81815260019283905292909220805460ff1916909117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd9061025b9083908a908a908a908a90899061073d565b60405180910390a15095945050505050565b5f85858585856040516020016102879594939291906106cd565b60408051601f1981840301815282825280516020918201205f8181526001909252919020805460ff1916905591507f65fc52b902965c1a53e05e64a9d7823fe42907aa394f4ed34111f0fbeea39d32906102ec9083908990899089908990899061073d565b60405180910390a1505050505050565b60605f86868686866040516020016103189594939291906106cd565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915060ff1661036757604051635d96957360e11b8152600481018290526024015b60405180910390fd5b82421161039757604051638e98731160e01b8152600481018290524260248201526044810184905260640161035e565b5f818152600160205260408120805460ff191690558551606091036103bd5750836103e9565b8580519060200120856040516020016103d792919061078f565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad378289898989896040516104229695949392919061073d565b60405180910390a15f80896001600160a01b0316898460405161044591906107bf565b5f6040518083038185875af1925050503d805f811461047f576040519150601f19603f3d011682016040523d82523d5f602084013e610484565b606091505b5091509150816104ab5783816040516309ec695360e41b815260040161035e9291906107da565b9998505050505050505050565b80356001600160a01b03811681146104ce575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f6575f80fd5b813567ffffffffffffffff80821115610511576105116104d3565b604051601f8301601f19908116603f01168101908282118183101715610539576105396104d3565b81604052838152866020858801011115610551575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215610583575f80fd5b61058c856104b8565b935060208501359250604085013567ffffffffffffffff808211156105af575f80fd5b6105bb888389016104e7565b935060608701359150808211156105d0575f80fd5b506105dd878288016104e7565b91505092959194509250565b5f805f805f60a086880312156105fd575f80fd5b610606866104b8565b945060208601359350604086013567ffffffffffffffff80821115610629575f80fd5b61063589838a016104e7565b9450606088013591508082111561064a575f80fd5b50610657888289016104e7565b95989497509295608001359392505050565b5f60208284031215610679575f80fd5b5035919050565b5f5b8381101561069a578181015183820152602001610682565b50505f910152565b5f81518084526106b9816020860160208601610680565b601f01601f19169290920160200192915050565b60018060a01b038616815284602082015260a060408201525f6106f360a08301866106a2565b828103606084015261070581866106a2565b9150508260808301529695505050505050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b92915050565b86815260018060a01b038616602082015284604082015260c060608201525f61076960c08301866106a2565b828103608084015261077b81866106a2565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906107b1816004850160208701610680565b919091016004019392505050565b5f82516107d0818460208701610680565b9190910192915050565b828152604060208201525f6107f260408301846106a2565b94935050505056fea2646970667358221220a2f2701021a77c36d67c0ce59ba07cffe736605e7d3f4307f2bea6ccb54e4d4f64736f6c63430008140033","sourceMap":"164:664:52:-:0;;;217:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:49;:14;164:664:52;;14:184:76;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:76;;14:184;-1:-1:-1;14:184:76:o;:::-;164:664:52;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610056575f3560e01c80627bcf6614610061578063313c7d5b1461008257806351ff2b74146100a1578063654f5c4e146100d55780636a42b8f8146100f45780636e8c7ab914610116575f80fd5b3661005d57005b5f80fd5b34801561006c575f80fd5b5061008061007b366004610570565b610144565b005b34801561008d575f80fd5b5061008061009c3660046105e9565b610157565b3480156100ac575f80fd5b506100c06100bb3660046105e9565b610164565b60405190151581526020015b60405180910390f35b3480156100e0575f80fd5b506100806100ef3660046105e9565b6101b1565b3480156100ff575f80fd5b506101085f5481565b6040519081526020016100cc565b348015610121575f80fd5b506100c0610130366004610669565b60016020525f908152604090205460ff1681565b610150848484846101c6565b5050505050565b610150858585858561026d565b5f80868686868660405160200161017f9594939291906106cd565b60408051808303601f1901815291815281516020928301205f908152600190925290205460ff16979650505050505050565b6101be85858585856102fc565b505050505050565b5f805f54426101d59190610718565b90505f86868686856040516020016101f19594939291906106cd565b60408051601f1981840301815282825280516020918201205f81815260019283905292909220805460ff1916909117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd9061025b9083908a908a908a908a90899061073d565b60405180910390a15095945050505050565b5f85858585856040516020016102879594939291906106cd565b60408051601f1981840301815282825280516020918201205f8181526001909252919020805460ff1916905591507f65fc52b902965c1a53e05e64a9d7823fe42907aa394f4ed34111f0fbeea39d32906102ec9083908990899089908990899061073d565b60405180910390a1505050505050565b60605f86868686866040516020016103189594939291906106cd565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915060ff1661036757604051635d96957360e11b8152600481018290526024015b60405180910390fd5b82421161039757604051638e98731160e01b8152600481018290524260248201526044810184905260640161035e565b5f818152600160205260408120805460ff191690558551606091036103bd5750836103e9565b8580519060200120856040516020016103d792919061078f565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad378289898989896040516104229695949392919061073d565b60405180910390a15f80896001600160a01b0316898460405161044591906107bf565b5f6040518083038185875af1925050503d805f811461047f576040519150601f19603f3d011682016040523d82523d5f602084013e610484565b606091505b5091509150816104ab5783816040516309ec695360e41b815260040161035e9291906107da565b9998505050505050505050565b80356001600160a01b03811681146104ce575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f6575f80fd5b813567ffffffffffffffff80821115610511576105116104d3565b604051601f8301601f19908116603f01168101908282118183101715610539576105396104d3565b81604052838152866020858801011115610551575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215610583575f80fd5b61058c856104b8565b935060208501359250604085013567ffffffffffffffff808211156105af575f80fd5b6105bb888389016104e7565b935060608701359150808211156105d0575f80fd5b506105dd878288016104e7565b91505092959194509250565b5f805f805f60a086880312156105fd575f80fd5b610606866104b8565b945060208601359350604086013567ffffffffffffffff80821115610629575f80fd5b61063589838a016104e7565b9450606088013591508082111561064a575f80fd5b50610657888289016104e7565b95989497509295608001359392505050565b5f60208284031215610679575f80fd5b5035919050565b5f5b8381101561069a578181015183820152602001610682565b50505f910152565b5f81518084526106b9816020860160208601610680565b601f01601f19169290920160200192915050565b60018060a01b038616815284602082015260a060408201525f6106f360a08301866106a2565b828103606084015261070581866106a2565b9150508260808301529695505050505050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b92915050565b86815260018060a01b038616602082015284604082015260c060608201525f61076960c08301866106a2565b828103608084015261077b81866106a2565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906107b1816004850160208701610680565b919091016004019392505050565b5f82516107d0818460208701610680565b9190910192915050565b828152604060208201525f6107f260408301846106a2565b94935050505056fea2646970667358221220a2f2701021a77c36d67c0ce59ba07cffe736605e7d3f4307f2bea6ccb54e4d4f64736f6c63430008140033","sourceMap":"164:664:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;274:150;;;;;;;;;;-1:-1:-1;274:150:52;;;;;:::i;:::-;;:::i;:::-;;430:176;;;;;;;;;;-1:-1:-1;430:176:52;;;;;:::i;:::-;;:::i;3004:263:49:-;;;;;;;;;;-1:-1:-1;3004:263:49;;;;;:::i;:::-;;:::i;:::-;;;2662:14:76;;2655:22;2637:41;;2625:2;2610:18;3004:263:49;;;;;;;;612:178:52;;;;;;;;;;-1:-1:-1;612:178:52;;;;;:::i;:::-;;:::i;144:20:49:-;;;;;;;;;;;;;;;;;;;2835:25:76;;;2823:2;2808:18;144:20:49;2689:177:76;243:45:49;;;;;;;;;;-1:-1:-1;243:45:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;274:150:52;380:37;392:6;400:5;407:3;412:4;380:11;:37::i;:::-;;274:150;;;;:::o;430:176::-;553:46;567:6;575:5;582:3;587:4;593:5;553:13;:46::i;3004:263:49:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:49;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:49:o;612:178:52:-;736:47;751:6;759:5;766:3;771:4;777:5;736:14;:47::i;:::-;;612:178;;;;;:::o;3686:388:49:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:49;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;3970:4;3945:22;;;;;;;;:29;;-1:-1:-1;;3945:29:49;;;;;;3881:54;-1:-1:-1;3990:54:49;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:49;3686:388;-1:-1:-1;;;;;3686:388:49:o;4382:317::-;4508:15;4547:6;4555:5;4562:3;4567:4;4573:5;4536:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4536:43:49;;;;;;;;;4526:54;;4536:43;4526:54;;;;4597:22;;;;:13;:22;;;;;;4590:29;;-1:-1:-1;;4590:29:49;;;4526:54;-1:-1:-1;4635:57:49;;;;4526:54;;4660:6;;4668:5;;4675:3;;4680:4;;4686:5;;4635:57;:::i;:::-;;;;;;;;4498:201;4382:317;;;;;:::o;5008:907::-;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:49;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:49;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:49;;;;;2835:25:76;;;2808:18;;5277:24:49;;;;;;;;5241:60;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:49;;;;;5526:25:76;;;5372:15:49;5567:18:76;;;5560:34;5610:18;;;5603:34;;;5499:18;;5348:47:49;5324:319:76;5311:84:49;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:49;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:49;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:49;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:49;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:49:o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:127::-;253:10;248:3;244:20;241:1;234:31;284:4;281:1;274:15;308:4;305:1;298:15;324:719;367:5;420:3;413:4;405:6;401:17;397:27;387:55;;438:1;435;428:12;387:55;474:6;461:20;500:18;537:2;533;530:10;527:36;;;543:18;;:::i;:::-;618:2;612:9;586:2;672:13;;-1:-1:-1;;668:22:76;;;692:2;664:31;660:40;648:53;;;716:18;;;736:22;;;713:46;710:72;;;762:18;;:::i;:::-;802:10;798:2;791:22;837:2;829:6;822:18;883:3;876:4;871:2;863:6;859:15;855:26;852:35;849:55;;;900:1;897;890:12;849:55;964:2;957:4;949:6;945:17;938:4;930:6;926:17;913:54;1011:1;1004:4;999:2;991:6;987:15;983:26;976:37;1031:6;1022:15;;;;;;324:719;;;;:::o;1048:685::-;1153:6;1161;1169;1177;1230:3;1218:9;1209:7;1205:23;1201:33;1198:53;;;1247:1;1244;1237:12;1198:53;1270:29;1289:9;1270:29;:::i;:::-;1260:39;;1346:2;1335:9;1331:18;1318:32;1308:42;;1401:2;1390:9;1386:18;1373:32;1424:18;1465:2;1457:6;1454:14;1451:34;;;1481:1;1478;1471:12;1451:34;1504:50;1546:7;1537:6;1526:9;1522:22;1504:50;:::i;:::-;1494:60;;1607:2;1596:9;1592:18;1579:32;1563:48;;1636:2;1626:8;1623:16;1620:36;;;1652:1;1649;1642:12;1620:36;;1675:52;1719:7;1708:8;1697:9;1693:24;1675:52;:::i;:::-;1665:62;;;1048:685;;;;;;;:::o;1738:754::-;1852:6;1860;1868;1876;1884;1937:3;1925:9;1916:7;1912:23;1908:33;1905:53;;;1954:1;1951;1944:12;1905:53;1977:29;1996:9;1977:29;:::i;:::-;1967:39;;2053:2;2042:9;2038:18;2025:32;2015:42;;2108:2;2097:9;2093:18;2080:32;2131:18;2172:2;2164:6;2161:14;2158:34;;;2188:1;2185;2178:12;2158:34;2211:50;2253:7;2244:6;2233:9;2229:22;2211:50;:::i;:::-;2201:60;;2314:2;2303:9;2299:18;2286:32;2270:48;;2343:2;2333:8;2330:16;2327:36;;;2359:1;2356;2349:12;2327:36;;2382:52;2426:7;2415:8;2404:9;2400:24;2382:52;:::i;:::-;1738:754;;;;-1:-1:-1;1738:754:76;;2481:3;2466:19;2453:33;;1738:754;-1:-1:-1;;;1738:754:76:o;2871:180::-;2930:6;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;-1:-1:-1;3022:23:76;;2871:180;-1:-1:-1;2871:180:76:o;3056:250::-;3141:1;3151:113;3165:6;3162:1;3159:13;3151:113;;;3241:11;;;3235:18;3222:11;;;3215:39;3187:2;3180:10;3151:113;;;-1:-1:-1;;3298:1:76;3280:16;;3273:27;3056:250::o;3311:271::-;3353:3;3391:5;3385:12;3418:6;3413:3;3406:19;3434:76;3503:6;3496:4;3491:3;3487:14;3480:4;3473:5;3469:16;3434:76;:::i;:::-;3564:2;3543:15;-1:-1:-1;;3539:29:76;3530:39;;;;3571:4;3526:50;;3311:271;-1:-1:-1;;3311:271:76:o;3587:623::-;3895:1;3891;3886:3;3882:11;3878:19;3870:6;3866:32;3855:9;3848:51;3935:6;3930:2;3919:9;3915:18;3908:34;3978:3;3973:2;3962:9;3958:18;3951:31;3829:4;4005:46;4046:3;4035:9;4031:19;4023:6;4005:46;:::i;:::-;4099:9;4091:6;4087:22;4082:2;4071:9;4067:18;4060:50;4127:33;4153:6;4145;4127:33;:::i;:::-;4119:41;;;4197:6;4191:3;4180:9;4176:19;4169:35;3587:623;;;;;;;;:::o;4215:222::-;4280:9;;;4301:10;;;4298:133;;;4353:10;4348:3;4344:20;4341:1;4334:31;4388:4;4385:1;4378:15;4416:4;4413:1;4406:15;4298:133;4215:222;;;;:::o;4442:695::-;4749:6;4738:9;4731:25;4821:1;4817;4812:3;4808:11;4804:19;4796:6;4792:32;4787:2;4776:9;4772:18;4765:60;4861:6;4856:2;4845:9;4841:18;4834:34;4904:3;4899:2;4888:9;4884:18;4877:31;4712:4;4931:46;4972:3;4961:9;4957:19;4949:6;4931:46;:::i;:::-;5026:9;5018:6;5014:22;5008:3;4997:9;4993:19;4986:51;5054:33;5080:6;5072;5054:33;:::i;:::-;5046:41;;;5124:6;5118:3;5107:9;5103:19;5096:35;4442:695;;;;;;;;;:::o;5648:384::-;-1:-1:-1;;;;;;5833:33:76;;5821:46;;5890:13;;5803:3;;5912:74;5890:13;5975:1;5966:11;;5959:4;5947:17;;5912:74;:::i;:::-;6006:16;;;;6024:1;6002:24;;5648:384;-1:-1:-1;;;5648:384:76:o;6037:287::-;6166:3;6204:6;6198:13;6220:66;6279:6;6274:3;6267:4;6259:6;6255:17;6220:66;:::i;:::-;6302:16;;;;;6037:287;-1:-1:-1;;6037:287:76:o;6329:289::-;6504:6;6493:9;6486:25;6547:2;6542;6531:9;6527:18;6520:30;6467:4;6567:45;6608:2;6597:9;6593:18;6585:6;6567:45;:::i;:::-;6559:53;6329:289;-1:-1:-1;;;;6329:289:76:o","linkReferences":{}},"methodIdentifiers":{"cancelAction(address,uint256,string,bytes,uint256)":"313c7d5b","delay()":"6a42b8f8","executeAction(address,uint256,string,bytes,uint256)":"654f5c4e","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","loadAction(address,uint256,string,bytes)":"007bcf66","loadedActions(bytes32)":"6e8c7ab9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"cancelAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"executeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"loadAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}}},\"kind\":\"dev\",\"methods\":{\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}}},\"title\":\"Stub Action Hopper Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubActionHopper.sol\":\"StubActionHopper\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/stub/StubActionHopper.sol\":{\"keccak256\":\"0x91debf9dd2ea08d79fec7cc8c43e91953b2e3ed50a96fcb482bc4dceab8f41e9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ba28cb2038b11f20dfcf8646a20491ed965551031f7cdaffffd1d43e089367c2\",\"dweb:/ipfs/QmSSuCif7vd1V1dUXTndw4cZVrWYiHaYAy3kevJn1ZpJW9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"executeAction"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadAction"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubActionHopper.sol":"StubActionHopper"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/stub/StubActionHopper.sol":{"keccak256":"0x91debf9dd2ea08d79fec7cc8c43e91953b2e3ed50a96fcb482bc4dceab8f41e9","urls":["bzz-raw://ba28cb2038b11f20dfcf8646a20491ed965551031f7cdaffffd1d43e089367c2","dweb:/ipfs/QmSSuCif7vd1V1dUXTndw4cZVrWYiHaYAy3kevJn1ZpJW9"],"license":"UNLICENSED"}},"version":1},"id":52} \ No newline at end of file diff --git a/out/StubERC721Receivable.sol/StubERC721Receivable.json b/out/StubERC721Receivable.sol/StubERC721Receivable.json new file mode 100644 index 0000000..dc2ee71 --- /dev/null +++ b/out/StubERC721Receivable.sol/StubERC721Receivable.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc721Contract","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506102d28061001d5f395ff3fe60806040526004361061002b575f3560e01c8063150b7a02146100365780633fcf9b0c14610072575f80fd5b3661003257005b5f80fd5b348015610041575f80fd5b506100556100503660046101d0565b610093565b6040516001600160e01b0319909116815260200160405180910390f35b34801561007d575f80fd5b5061009161008c366004610263565b6100f2565b005b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6100fd838383610102565b505050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490528216906342842e0e906064015f604051808303815f87803b15801561014f575f80fd5b505af1158015610161573d5f803e3d5ffd5b5050604080516001600160a01b0387811682526020820187905285168183015290517fe766171301ed524b0850d38c1eeced46e559aeccfbfd994fc19bbb80ac8b18819350908190036060019150a1505050565b80356001600160a01b03811681146101cb575f80fd5b919050565b5f805f805f608086880312156101e4575f80fd5b6101ed866101b5565b94506101fb602087016101b5565b935060408601359250606086013567ffffffffffffffff8082111561021e575f80fd5b818801915088601f830112610231575f80fd5b81358181111561023f575f80fd5b896020828501011115610250575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610275575f80fd5b61027e846101b5565b925060208401359150610293604085016101b5565b9050925092509256fea26469706673582212201f130ddcacd779e81f49defd7cd2569411be4c6b36ddca3794a837405c2ea8cf64736f6c63430008140033","sourceMap":"171:258:53:-:0;;;232:16;;;;;;;;;;171:258;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002b575f3560e01c8063150b7a02146100365780633fcf9b0c14610072575f80fd5b3661003257005b5f80fd5b348015610041575f80fd5b506100556100503660046101d0565b610093565b6040516001600160e01b0319909116815260200160405180910390f35b34801561007d575f80fd5b5061009161008c366004610263565b6100f2565b005b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6100fd838383610102565b505050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490528216906342842e0e906064015f604051808303815f87803b15801561014f575f80fd5b505af1158015610161573d5f803e3d5ffd5b5050604080516001600160a01b0387811682526020820187905285168183015290517fe766171301ed524b0850d38c1eeced46e559aeccfbfd994fc19bbb80ac8b18819350908190036060019150a1505050565b80356001600160a01b03811681146101cb575f80fd5b919050565b5f805f805f608086880312156101e4575f80fd5b6101ed866101b5565b94506101fb602087016101b5565b935060408601359250606086013567ffffffffffffffff8082111561021e575f80fd5b818801915088601f830112610231575f80fd5b81358181111561023f575f80fd5b896020828501011115610250575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610275575f80fd5b61027e846101b5565b925060208401359150610293604085016101b5565b9050925092509256fea26469706673582212201f130ddcacd779e81f49defd7cd2569411be4c6b36ddca3794a837405c2ea8cf64736f6c63430008140033","sourceMap":"171:258:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:476:50;;;;;;;;;;-1:-1:-1;1177:476:50;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1167:33:76;;;1149:52;;1137:2;1122:18;1177:476:50;;;;;;;254:137:53;;;;;;;;;;-1:-1:-1;254:137:53;;;;;:::i;:::-;;:::i;:::-;;1177:476:50;1549:39;;;-1:-1:-1;;;;;1803:15:76;;;1785:34;;1850:2;1835:18;;1828:34;;;1898:15;;1878:18;;;1871:43;1549:39:50;;-1:-1:-1;;1549:39:50;;;;;;1735:2:76;1549:39:50;;;-1:-1:-1;;;;1177:476:50;;;;;;;:::o;254:137:53:-;344:40;356:2;360:7;369:14;344:11;:40::i;:::-;254:137;;;:::o;1659:370:50:-;1900:68;;-1:-1:-1;;;1900:68:50;;1949:4;1900:68;;;2165:34:76;-1:-1:-1;;;;;2235:15:76;;;2215:18;;;2208:43;2267:18;;;2260:34;;;1900:40:50;;;;;2100:18:76;;1900:68:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1983:39:50;;;-1:-1:-1;;;;;1803:15:76;;;1785:34;;1850:2;1835:18;;1828:34;;;1898:15;;1878:18;;;1871:43;1983:39:50;;;;-1:-1:-1;1983:39:50;;;;1735:2:76;1983:39:50;;-1:-1:-1;1983:39:50;1659:370;;;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:808::-;289:6;297;305;313;321;374:3;362:9;353:7;349:23;345:33;342:53;;;391:1;388;381:12;342:53;414:29;433:9;414:29;:::i;:::-;404:39;;462:38;496:2;485:9;481:18;462:38;:::i;:::-;452:48;;547:2;536:9;532:18;519:32;509:42;;602:2;591:9;587:18;574:32;625:18;666:2;658:6;655:14;652:34;;;682:1;679;672:12;652:34;720:6;709:9;705:22;695:32;;765:7;758:4;754:2;750:13;746:27;736:55;;787:1;784;777:12;736:55;827:2;814:16;853:2;845:6;842:14;839:34;;;869:1;866;859:12;839:34;914:7;909:2;900:6;896:2;892:15;888:24;885:37;882:57;;;935:1;932;925:12;882:57;192:808;;;;-1:-1:-1;192:808:76;;-1:-1:-1;966:2:76;958:11;;988:6;192:808;-1:-1:-1;;;192:808:76:o;1212:328::-;1289:6;1297;1305;1358:2;1346:9;1337:7;1333:23;1329:32;1326:52;;;1374:1;1371;1364:12;1326:52;1397:29;1416:9;1397:29;:::i;:::-;1387:39;;1473:2;1462:9;1458:18;1445:32;1435:42;;1496:38;1530:2;1519:9;1515:18;1496:38;:::i;:::-;1486:48;;1212:328;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02","sendERC721(address,uint256,address)":"3fcf9b0c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"Stub ERC721Receivable Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubERC721Receivable.sol\":\"StubERC721Receivable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/abstract/stub/StubERC721Receivable.sol\":{\"keccak256\":\"0x2f219603da703836bd38d83886260628e081cdec33878a4a0c0f03b08c7105f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6b2c6a5788c9513899398233997b3b31f06b86732249a8b8ed1dbeb638c06ff3\",\"dweb:/ipfs/QmYv2jTpdUd7on6a6GSHvb2riPFmA14Ep6FwhKFoZGpmdz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc721Contract","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubERC721Receivable.sol":"StubERC721Receivable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/abstract/stub/StubERC721Receivable.sol":{"keccak256":"0x2f219603da703836bd38d83886260628e081cdec33878a4a0c0f03b08c7105f4","urls":["bzz-raw://6b2c6a5788c9513899398233997b3b31f06b86732249a8b8ed1dbeb638c06ff3","dweb:/ipfs/QmYv2jTpdUd7on6a6GSHvb2riPFmA14Ep6FwhKFoZGpmdz"],"license":"UNLICENSED"}},"version":1},"id":53} \ No newline at end of file diff --git a/out/StubOGREFactory.sol/StubOGREFactory.json b/out/StubOGREFactory.sol/StubOGREFactory.json new file mode 100644 index 0000000..792953d --- /dev/null +++ b/out/StubOGREFactory.sol/StubOGREFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceContract","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"producer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101278061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460c5565b605e565b005b604080516001600160a01b03848116825230602083015283168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a15050565b80356001600160a01b038116811460c0575f80fd5b919050565b5f806040838503121560d5575f80fd5b60dc8360ab565b915060e86020840160ab565b9050925092905056fea26469706673582212204e6b282ee81107bd0e978d89afb3caf54d517a7ad169271af1f080e00a61043764736f6c63430008140033","sourceMap":"161:231:54:-:0;;;212:16;;;;;;;;;;161:231;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460c5565b605e565b005b604080516001600160a01b03848116825230602083015283168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a15050565b80356001600160a01b038116811460c0575f80fd5b919050565b5f806040838503121560d5575f80fd5b60dc8360ab565b915060e86020840160ab565b9050925092905056fea26469706673582212204e6b282ee81107bd0e978d89afb3caf54d517a7ad169271af1f080e00a61043764736f6c63430008140033","sourceMap":"161:231:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;234:155:54;;;;;;:::i;:::-;;:::i;:::-;;;324:58;;;-1:-1:-1;;;;;897:15:76;;;879:34;;366:4:54;944:2:76;929:18;;922:43;1001:15;;981:18;;;974:43;324:58:54;;;;;;;829:2:76;324:58:54;;;234:155;;:::o;196:173:76:-;264:20;;-1:-1:-1;;;;;313:31:76;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:260::-;442:6;450;503:2;491:9;482:7;478:23;474:32;471:52;;;519:1;516;509:12;471:52;542:29;561:9;542:29;:::i;:::-;532:39;;590:38;624:2;613:9;609:18;590:38;:::i;:::-;580:48;;374:260;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceContract(address,address)":"b0a32084","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"produceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Stub OGREFactory Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubOGREFactory.sol\":\"StubOGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/abstract/stub/StubOGREFactory.sol\":{\"keccak256\":\"0x3f8c58d15cd4bbc094d5cf1baef54bccea3fb19c4600d3031210b35d5f84ee59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fe89c6a813859552502a56fd5b9e6599105bf22e7ebf64b6edf1104844c423\",\"dweb:/ipfs/QmZpsZrg3P4wHhTfHVTtFn8FDKYvWA61CPYy7Xvqn9zrC1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"address","name":"producer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubOGREFactory.sol":"StubOGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/abstract/stub/StubOGREFactory.sol":{"keccak256":"0x3f8c58d15cd4bbc094d5cf1baef54bccea3fb19c4600d3031210b35d5f84ee59","urls":["bzz-raw://c3fe89c6a813859552502a56fd5b9e6599105bf22e7ebf64b6edf1104844c423","dweb:/ipfs/QmZpsZrg3P4wHhTfHVTtFn8FDKYvWA61CPYy7Xvqn9zrC1"],"license":"UNLICENSED"}},"version":1},"id":54} \ No newline at end of file diff --git a/out/Test.sol/Test.json b/out/Test.sol/Test.json new file mode 100644 index 0000000..8c36f6d --- /dev/null +++ b/out/Test.sol/Test.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":"Test"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/out/Vm.sol/Vm.json b/out/Vm.sol/Vm.json new file mode 100644 index 0000000..a78a958 --- /dev/null +++ b/out/Vm.sol/Vm.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialReverts","type":"tuple[]","internalType":"struct VmSafe.PotentialRevert[]","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialRevert","type":"tuple","internalType":"struct VmSafe.PotentialRevert","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"attachDelegation","inputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobBaseFee","inputs":[{"name":"newBlobBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobhashes","inputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcastRawTransaction","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cloneAccount","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"contains","inputs":[{"name":"subject","type":"string","internalType":"string"},{"name":"search","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyStorage","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteStateSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteStateSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"},{"name":"constructorArgs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"checkTopic0","type":"bool","internalType":"bool"},{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"checkTopic0","type":"bool","internalType":"bool"},{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectPartialRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectPartialRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByCode","inputs":[{"name":"code","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByDeployedCode","inputs":[{"name":"deployedCode","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlobhashes","inputs":[],"outputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBroadcast","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple","internalType":"struct VmSafe.BroadcastTxSummary","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployments","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddresses","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getFoundryVersion","inputs":[],"outputs":[{"name":"version","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getStateDiff","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStateDiffJson","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[],"outputs":[{"name":"wallets","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCalls","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCalls","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockFunction","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonTypeArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlTypeArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"publicKeyP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomBool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"randomBytes","inputs":[{"name":"len","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"randomBytes4","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"randomBytes8","inputs":[],"outputs":[{"name":"","type":"bytes8","internalType":"bytes8"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"language","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToState","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToStateAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setArbitraryStorage","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBlockhash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signAndAttachDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotGasLastCall","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotGasLastCall","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotState","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotValue","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotValue","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startDebugTraceRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startSnapshotGas","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startSnapshotGas","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnDebugTraceRecording","inputs":[],"outputs":[{"name":"step","type":"tuple[]","internalType":"struct VmSafe.DebugStep[]","components":[{"name":"stack","type":"uint256[]","internalType":"uint256[]"},{"name":"memoryInput","type":"bytes","internalType":"bytes"},{"name":"opcode","type":"uint8","internalType":"uint8"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isOutOfGas","type":"bool","internalType":"bool"},{"name":"contractAddr","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopExpectSafeMemory","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","assumeNoRevert((address,bool,bytes))":"d8591eeb","assumeNoRevert((address,bool,bytes)[])":"8a4592cc","assumeNoRevert()":"285b366a","attachDelegation((uint8,bytes32,bytes32,uint64,address))":"14ae3519","blobBaseFee(uint256)":"6d315d7e","blobhashes(bytes32[])":"129de7eb","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","cloneAccount(address,address)":"533d61c9","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","contains(string,string)":"3fb18aec","copyFile(string,string)":"a54a87d8","copyStorage(address,address)":"203dac0d","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deleteStateSnapshot(uint256)":"08d6b37a","deleteStateSnapshots()":"e0933c74","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(address,uint64)":"b43aece3","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectEmit(bool,bool,bool,bool,address,uint64)":"c339d02c","expectEmit(bool,bool,bool,bool,uint64)":"5e1d1c33","expectEmit(uint64)":"4c74a335","expectEmitAnonymous()":"2e5f270c","expectEmitAnonymous(address)":"6fc68705","expectEmitAnonymous(bool,bool,bool,bool,bool)":"c948db5e","expectEmitAnonymous(bool,bool,bool,bool,bool,address)":"71c95899","expectPartialRevert(bytes4)":"11fb5b9c","expectPartialRevert(bytes4,address)":"51aa008a","expectRevert()":"f4844814","expectRevert(address)":"d814f38a","expectRevert(address,uint64)":"1ff5f952","expectRevert(bytes)":"f28dceb3","expectRevert(bytes,address)":"61ebcf12","expectRevert(bytes,address,uint64)":"d345fb1f","expectRevert(bytes,uint64)":"4994c273","expectRevert(bytes4)":"c31eb0e0","expectRevert(bytes4,address)":"260bc5de","expectRevert(bytes4,address,uint64)":"b0762d73","expectRevert(bytes4,uint64)":"e45ca72d","expectRevert(uint64)":"4ee38244","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getArtifactPathByCode(bytes)":"eb74848c","getArtifactPathByDeployedCode(bytes)":"6d853ba5","getBlobBaseFee()":"1f6d6ef7","getBlobhashes()":"f56ff18b","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getBroadcast(string,uint64,uint8)":"3dc90cb3","getBroadcasts(string,uint64)":"f2fa4a26","getBroadcasts(string,uint64,uint8)":"f7afe919","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getDeployment(string)":"a8091d97","getDeployment(string,uint64)":"0debd5d6","getDeployments(string,uint64)":"74e133dd","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","getStateDiff()":"80df01cc","getStateDiffJson()":"f54fe009","getWallets()":"db7a4605","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,bytes4,bytes)":"08e0c537","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCall(address,uint256,bytes4,bytes)":"e7b36a3d","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,bytes4,bytes)":"2dfba5df","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","mockCallRevert(address,uint256,bytes4,bytes)":"596c8f04","mockCalls(address,bytes,bytes[])":"5c5c3de9","mockCalls(address,uint256,bytes,bytes[])":"08bcbae1","mockFunction(address,address,bytes)":"adf84d21","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlType(string,string)":"47fa5e11","parseTomlType(string,string,string)":"f9fa5cdb","parseTomlTypeArray(string,string,string)":"49be3743","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","pauseTracing()":"c94d1f90","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prank(address,address,bool)":"7d73d042","prank(address,bool)":"a7f8bf5c","prevrandao(bytes32)":"3b925549","prevrandao(uint256)":"9cb1c0d4","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","publicKeyP256(uint256)":"c453949e","randomAddress()":"d5bee9f5","randomBool()":"cdc126bd","randomBytes(uint256)":"6c5d32a9","randomBytes4()":"9b7cd579","randomBytes8()":"0497b0a5","randomInt()":"111f1202","randomInt(uint256)":"12845966","randomUint()":"25124730","randomUint(uint256)":"cf81e69c","randomUint(uint256,uint256)":"d61b051b","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","rememberKeys(string,string,string,uint32)":"f8d58eaf","rememberKeys(string,string,uint32)":"97cb9189","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetGasMetering()":"be367dd3","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","resumeTracing()":"72a09ccb","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revertToState(uint256)":"c2527405","revertToStateAndDelete(uint256)":"3a1985dc","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setArbitraryStorage(address)":"e1631837","setBlockhash(uint256,bytes32)":"5314b54a","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signAndAttachDelegation(address,uint256)":"c7fa7288","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signDelegation(address,uint256)":"5b593c7b","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","skip(bool,string)":"c42a80a7","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","snapshotGasLastCall(string)":"dd9fca12","snapshotGasLastCall(string,string)":"200c6772","snapshotState()":"9cd23835","snapshotValue(string,string,uint256)":"6d2b27d8","snapshotValue(string,uint256)":"51db805a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startDebugTraceRecording()":"419c8832","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startPrank(address,address,bool)":"4eb859b5","startPrank(address,bool)":"1cc0b435","startSnapshotGas(string)":"3cad9d7b","startSnapshotGas(string,string)":"6cd0cc53","startStateDiffRecording()":"cf22e3c9","stopAndReturnDebugTraceRecording()":"ced398a2","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","stopSnapshotGas()":"f6402eda","stopSnapshotGas(string)":"773b2805","stopSnapshotGas(string,string)":"0c9db707","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert[]\",\"name\":\"potentialReverts\",\"type\":\"tuple[]\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert\",\"name\":\"potentialRevert\",\"type\":\"tuple\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"name\":\"attachDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBlobBaseFee\",\"type\":\"uint256\"}],\"name\":\"blobBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"name\":\"blobhashes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"cloneAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subject\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"search\",\"type\":\"string\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"copyStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteStateSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteStateSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectPartialRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectPartialRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"code\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByDeployedCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobhashes\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcast\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployments\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"deployedAddresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiff\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiffJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"wallets\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"name\":\"mockCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"name\":\"mockCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mockFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrevrandao\",\"type\":\"uint256\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"publicKeyP256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"len\",\"type\":\"uint256\"}],\"name\":\"randomBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes8\",\"outputs\":[{\"internalType\":\"bytes8\",\"name\":\"\",\"type\":\"bytes8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resetGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToStateAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"setArbitraryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"setBlockhash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signAndAttachDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"snapshotGasLastCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"snapshotGasLastCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"snapshotValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"snapshotValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startDebugTraceRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"startSnapshotGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"startSnapshotGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnDebugTraceRecording\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"stack\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"memoryInput\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isOutOfGas\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractAddr\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.DebugStep[]\",\"name\":\"step\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"assumeNoRevert((address,bool,bytes))\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters.\"},\"assumeNoRevert((address,bool,bytes)[])\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters.\"},\"assumeNoRevert()\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverted.\"},\"attachDelegation((uint8,bytes32,bytes32,uint64,address))\":{\"notice\":\"Designate the next call as an EIP-7702 transaction\"},\"blobBaseFee(uint256)\":{\"notice\":\"Sets `block.blobbasefee`\"},\"blobhashes(bytes32[])\":{\"notice\":\"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"cloneAccount(address,address)\":{\"notice\":\"Clones a source account code, state, balance and nonce to a target account and updates in-memory EVM state.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"contains(string,string)\":{\"notice\":\"Returns true if `search` is found in `subject`, false otherwise.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"copyStorage(address,address)\":{\"notice\":\"Utility cheatcode to copy storage of `from` contract to another `to` contract.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"`deleteSnapshot` is being deprecated in favor of `deleteStateSnapshot`. It will be removed in future versions.\"},\"deleteSnapshots()\":{\"notice\":\"`deleteSnapshots` is being deprecated in favor of `deleteStateSnapshots`. It will be removed in future versions.\"},\"deleteStateSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteStateSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(address,uint64)\":{\"notice\":\"Expect a given number of logs from a specific emitter with all topic and data checks enabled.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool,address,uint64)\":{\"notice\":\"Expect a given number of logs from a specific emitter with the provided topics.\"},\"expectEmit(bool,bool,bool,bool,uint64)\":{\"notice\":\"Expect a given number of logs with the provided topics.\"},\"expectEmit(uint64)\":{\"notice\":\"Expect a given number of logs with all topic and data checks enabled.\"},\"expectEmitAnonymous()\":{\"notice\":\"Prepare an expected anonymous log with all topic and data checks enabled. Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmitAnonymous(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectPartialRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectPartialRevert(bytes4,address)\":{\"notice\":\"Expects an error on next call to reverter address, that starts with the revert data.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(address)\":{\"notice\":\"Expects an error with any revert data on next call to reverter address.\"},\"expectRevert(address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes,address)\":{\"notice\":\"Expects an error from reverter address on next call, that exactly matches the revert data.\"},\"expectRevert(bytes,address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address that exactly match the revert data.\"},\"expectRevert(bytes,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls that exactly match the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4,address)\":{\"notice\":\"Expects an error from reverter address on next call, with any revert data.\"},\"expectRevert(bytes4,address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address that match the revert data.\"},\"expectRevert(bytes4,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls that match the revert data.\"},\"expectRevert(uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls with any revert data or reverter.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getArtifactPathByCode(bytes)\":{\"notice\":\"Gets the artifact path from code (aka. creation code).\"},\"getArtifactPathByDeployedCode(bytes)\":{\"notice\":\"Gets the artifact path from deployed code (aka. runtime code).\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlobhashes()\":{\"notice\":\"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBroadcast(string,uint64,uint8)\":{\"notice\":\"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`.\"},\"getBroadcasts(string,uint64)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getBroadcasts(string,uint64,uint8)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployment(string)\":{\"notice\":\"Returns the most recent deployment for the current `chainId`.\"},\"getDeployment(string,uint64)\":{\"notice\":\"Returns the most recent deployment for the given contract on `chainId`\"},\"getDeployments(string,uint64)\":{\"notice\":\"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"getStateDiff()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session.\"},\"getStateDiffJson()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session, in json format.\"},\"getWallets()\":{\"notice\":\"Returns addresses of available unlocked wallets in the script environment.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call from the callee perspective.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory EVM state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,bytes4,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCall(address,uint256,bytes4,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,bytes4,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"mockCallRevert(address,uint256,bytes4,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCalls(address,bytes,bytes[])\":{\"notice\":\"Mocks multiple calls to an address, returning specified data for each call.\"},\"mockCalls(address,uint256,bytes,bytes[])\":{\"notice\":\"Mocks multiple calls to an address with a specific `msg.value`, returning specified data for each call.\"},\"mockFunction(address,address,bytes)\":{\"notice\":\"Whenever a call is made to `callee` with calldata `data`, this cheatcode instead calls `target` with the same calldata. This functionality is similar to a delegate call made to `target` contract from `callee`. Can be used to substitute a call to a function with another implementation that captures the primary logic of the original function but is easier to reason about. If calldata is not a strict match then partial match by selector is attempted.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlType(string,string)\":{\"notice\":\"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlType(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlTypeArray(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"pauseTracing()\":{\"notice\":\"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prank(address,address,bool)\":{\"notice\":\"Sets the *next* delegate call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prank(address,bool)\":{\"notice\":\"Sets the *next* delegate call's `msg.sender` to be the input address.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"prevrandao(uint256)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"publicKeyP256(uint256)\":{\"notice\":\"Derives secp256r1 public key from the provided `privateKey`.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomBool()\":{\"notice\":\"Returns a random `bool`.\"},\"randomBytes(uint256)\":{\"notice\":\"Returns a random byte array value of the given length.\"},\"randomBytes4()\":{\"notice\":\"Returns a random fixed-size byte array of length 4.\"},\"randomBytes8()\":{\"notice\":\"Returns a random fixed-size byte array of length 8.\"},\"randomInt()\":{\"notice\":\"Returns a random `int256` value.\"},\"randomInt(uint256)\":{\"notice\":\"Returns a random `int256` value of given bits.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256)\":{\"notice\":\"Returns a random `uint256` value of given bits.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uint256 value between the provided range (=min..=max).\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"rememberKeys(string,string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"rememberKeys(string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetGasMetering()\":{\"notice\":\"Reset gas metering (i.e. gas usage is set to gas limit).\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"resumeTracing()\":{\"notice\":\"Unpauses collection of call traces.\"},\"revertTo(uint256)\":{\"notice\":\"`revertTo` is being deprecated in favor of `revertToState`. It will be removed in future versions.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"`revertToAndDelete` is being deprecated in favor of `revertToStateAndDelete`. It will be removed in future versions.\"},\"revertToState(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteStateSnapshot`.\"},\"revertToStateAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setArbitraryStorage(address)\":{\"notice\":\"Utility cheatcode to set arbitrary storage for given target address.\"},\"setBlockhash(uint256,bytes32)\":{\"notice\":\"Set blockhash for the current block. It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signAndAttachDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization for delegation\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top level of a test.\"},\"skip(bool,string)\":{\"notice\":\"Marks a test as skipped with a reason. Must be called at the top level of a test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"`snapshot` is being deprecated in favor of `snapshotState`. It will be removed in future versions.\"},\"snapshotGasLastCall(string)\":{\"notice\":\"Snapshot capture the gas usage of the last call by name from the callee perspective.\"},\"snapshotGasLastCall(string,string)\":{\"notice\":\"Snapshot capture the gas usage of the last call by name in a group from the callee perspective.\"},\"snapshotState()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertToState`.\"},\"snapshotValue(string,string,uint256)\":{\"notice\":\"Snapshot capture an arbitrary numerical value by name in a group.\"},\"snapshotValue(string,uint256)\":{\"notice\":\"Snapshot capture an arbitrary numerical value by name. The group name is derived from the contract name.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startDebugTraceRecording()\":{\"notice\":\"Records the debug trace during the run.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startPrank(address,address,bool)\":{\"notice\":\"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startPrank(address,bool)\":{\"notice\":\"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startSnapshotGas(string)\":{\"notice\":\"Start a snapshot capture of the current gas usage by name. The group name is derived from the contract name.\"},\"startSnapshotGas(string,string)\":{\"notice\":\"Start a snapshot capture of the current gas usage by name in a group.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnDebugTraceRecording()\":{\"notice\":\"Stop debug trace recording and returns the recorded debug trace.\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"stopSnapshotGas()\":{\"notice\":\"Stop the snapshot capture of the current gas by latest snapshot name, capturing the gas used since the start.\"},\"stopSnapshotGas(string)\":{\"notice\":\"Stop the snapshot capture of the current gas usage by name, capturing the gas used since the start. The group name is derived from the contract name.\"},\"stopSnapshotGas(string,string)\":{\"notice\":\"Stop the snapshot capture of the current gas usage by name in a group, capturing the gas used since the start.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert[]","name":"potentialReverts","type":"tuple[]","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert","name":"potentialRevert","type":"tuple","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"attachDelegation"},{"inputs":[{"internalType":"uint256","name":"newBlobBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"blobBaseFee"},{"inputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"blobhashes"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"broadcastRawTransaction"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"cloneAccount"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"subject","type":"string"},{"internalType":"string","name":"search","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"copyStorage"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteStateSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteStateSnapshots"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectPartialRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectPartialRevert"},{"inputs":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"deployedCode","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByDeployedCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobhashes","outputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcast","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployments","outputs":[{"internalType":"address[]","name":"deployedAddresses","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiff","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiffJson","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mockCalls"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mockCalls"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockFunction"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"pauseTracing"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[{"internalType":"uint256","name":"newPrevrandao","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"publicKeyP256","outputs":[{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"len","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes4","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes8","outputs":[{"internalType":"bytes8","name":"","type":"bytes8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"string","name":"language","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resetGasMetering"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"resumeTracing"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToState","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToStateAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setArbitraryStorage"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBlockhash"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signAndAttachDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"snapshotGasLastCall","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"snapshotGasLastCall","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshotState","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"snapshotValue"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"snapshotValue"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startDebugTraceRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"startSnapshotGas"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"startSnapshotGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnDebugTraceRecording","outputs":[{"internalType":"struct VmSafe.DebugStep[]","name":"step","type":"tuple[]","components":[{"internalType":"uint256[]","name":"stack","type":"uint256[]"},{"internalType":"bytes","name":"memoryInput","type":"bytes"},{"internalType":"uint8","name":"opcode","type":"uint8"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isOutOfGas","type":"bool"},{"internalType":"address","name":"contractAddr","type":"address"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopExpectSafeMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"view","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"assumeNoRevert((address,bool,bytes))":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters."},"assumeNoRevert((address,bool,bytes)[])":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters."},"assumeNoRevert()":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverted."},"attachDelegation((uint8,bytes32,bytes32,uint64,address))":{"notice":"Designate the next call as an EIP-7702 transaction"},"blobBaseFee(uint256)":{"notice":"Sets `block.blobbasefee`"},"blobhashes(bytes32[])":{"notice":"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"broadcastRawTransaction(bytes)":{"notice":"Takes a signed transaction and broadcasts it to the network."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"cloneAccount(address,address)":{"notice":"Clones a source account code, state, balance and nonce to a target account and updates in-memory EVM state."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"contains(string,string)":{"notice":"Returns true if `search` is found in `subject`, false otherwise."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"copyStorage(address,address)":{"notice":"Utility cheatcode to copy storage of `from` contract to another `to` contract."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"`deleteSnapshot` is being deprecated in favor of `deleteStateSnapshot`. It will be removed in future versions."},"deleteSnapshots()":{"notice":"`deleteSnapshots` is being deprecated in favor of `deleteStateSnapshots`. It will be removed in future versions."},"deleteStateSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteStateSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deployCode(string)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"deployCode(string,bytes)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(address,uint64)":{"notice":"Expect a given number of logs from a specific emitter with all topic and data checks enabled."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool,address,uint64)":{"notice":"Expect a given number of logs from a specific emitter with the provided topics."},"expectEmit(bool,bool,bool,bool,uint64)":{"notice":"Expect a given number of logs with the provided topics."},"expectEmit(uint64)":{"notice":"Expect a given number of logs with all topic and data checks enabled."},"expectEmitAnonymous()":{"notice":"Prepare an expected anonymous log with all topic and data checks enabled. Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmitAnonymous(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmitAnonymous(bool,bool,bool,bool,bool)":{"notice":"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmitAnonymous(bool,bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectPartialRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectPartialRevert(bytes4,address)":{"notice":"Expects an error on next call to reverter address, that starts with the revert data."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(address)":{"notice":"Expects an error with any revert data on next call to reverter address."},"expectRevert(address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes,address)":{"notice":"Expects an error from reverter address on next call, that exactly matches the revert data."},"expectRevert(bytes,address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address that exactly match the revert data."},"expectRevert(bytes,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls that exactly match the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4,address)":{"notice":"Expects an error from reverter address on next call, with any revert data."},"expectRevert(bytes4,address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address that match the revert data."},"expectRevert(bytes4,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls that match the revert data."},"expectRevert(uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls with any revert data or reverter."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getArtifactPathByCode(bytes)":{"notice":"Gets the artifact path from code (aka. creation code)."},"getArtifactPathByDeployedCode(bytes)":{"notice":"Gets the artifact path from deployed code (aka. runtime code)."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlobhashes()":{"notice":"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBroadcast(string,uint64,uint8)":{"notice":"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`."},"getBroadcasts(string,uint64)":{"notice":"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getBroadcasts(string,uint64,uint8)":{"notice":"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployment(string)":{"notice":"Returns the most recent deployment for the current `chainId`."},"getDeployment(string,uint64)":{"notice":"Returns the most recent deployment for the given contract on `chainId`"},"getDeployments(string,uint64)":{"notice":"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last."},"getFoundryVersion()":{"notice":"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get the nonce of a `Wallet`."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"getStateDiff()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session."},"getStateDiffJson()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session, in json format."},"getWallets()":{"notice":"Returns addresses of available unlocked wallets in the script environment."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call from the callee perspective."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory EVM state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,bytes4,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCall(address,uint256,bytes4,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,bytes4,bytes)":{"notice":"Reverts a call to an address with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"mockCallRevert(address,uint256,bytes4,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCalls(address,bytes,bytes[])":{"notice":"Mocks multiple calls to an address, returning specified data for each call."},"mockCalls(address,uint256,bytes,bytes[])":{"notice":"Mocks multiple calls to an address with a specific `msg.value`, returning specified data for each call."},"mockFunction(address,address,bytes)":{"notice":"Whenever a call is made to `callee` with calldata `data`, this cheatcode instead calls `target` with the same calldata. This functionality is similar to a delegate call made to `target` contract from `callee`. Can be used to substitute a call to a function with another implementation that captures the primary logic of the original function but is easier to reason about. If calldata is not a strict match then partial match by selector is attempted."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonType(string,string)":{"notice":"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."},"parseJsonType(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."},"parseJsonTypeArray(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlType(string,string)":{"notice":"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`."},"parseTomlType(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`."},"parseTomlTypeArray(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"pauseTracing()":{"notice":"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prank(address,address,bool)":{"notice":"Sets the *next* delegate call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prank(address,bool)":{"notice":"Sets the *next* delegate call's `msg.sender` to be the input address."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"prevrandao(uint256)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"publicKeyP256(uint256)":{"notice":"Derives secp256r1 public key from the provided `privateKey`."},"randomAddress()":{"notice":"Returns a random `address`."},"randomBool()":{"notice":"Returns a random `bool`."},"randomBytes(uint256)":{"notice":"Returns a random byte array value of the given length."},"randomBytes4()":{"notice":"Returns a random fixed-size byte array of length 4."},"randomBytes8()":{"notice":"Returns a random fixed-size byte array of length 8."},"randomInt()":{"notice":"Returns a random `int256` value."},"randomInt(uint256)":{"notice":"Returns a random `int256` value of given bits."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256)":{"notice":"Returns a random `uint256` value of given bits."},"randomUint(uint256,uint256)":{"notice":"Returns random uint256 value between the provided range (=min..=max)."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"rememberKeys(string,string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"rememberKeys(string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetGasMetering()":{"notice":"Reset gas metering (i.e. gas usage is set to gas limit)."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"resumeTracing()":{"notice":"Unpauses collection of call traces."},"revertTo(uint256)":{"notice":"`revertTo` is being deprecated in favor of `revertToState`. It will be removed in future versions."},"revertToAndDelete(uint256)":{"notice":"`revertToAndDelete` is being deprecated in favor of `revertToStateAndDelete`. It will be removed in future versions."},"revertToState(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteStateSnapshot`."},"revertToStateAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpc(string,string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the given endpoint."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeJsonType(string,bytes)":{"notice":"See `serializeJson`."},"serializeJsonType(string,string,string,bytes)":{"notice":"See `serializeJson`."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setArbitraryStorage(address)":{"notice":"Utility cheatcode to set arbitrary storage for given target address."},"setBlockhash(uint256,bytes32)":{"notice":"Set blockhash for the current block. It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signAndAttachDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction"},"signCompact((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signCompact(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address."},"signCompact(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"signCompact(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization for delegation"},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top level of a test."},"skip(bool,string)":{"notice":"Marks a test as skipped with a reason. Must be called at the top level of a test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"`snapshot` is being deprecated in favor of `snapshotState`. It will be removed in future versions."},"snapshotGasLastCall(string)":{"notice":"Snapshot capture the gas usage of the last call by name from the callee perspective."},"snapshotGasLastCall(string,string)":{"notice":"Snapshot capture the gas usage of the last call by name in a group from the callee perspective."},"snapshotState()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertToState`."},"snapshotValue(string,string,uint256)":{"notice":"Snapshot capture an arbitrary numerical value by name in a group."},"snapshotValue(string,uint256)":{"notice":"Snapshot capture an arbitrary numerical value by name. The group name is derived from the contract name."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startDebugTraceRecording()":{"notice":"Records the debug trace during the run."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startPrank(address,address,bool)":{"notice":"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startPrank(address,bool)":{"notice":"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called."},"startSnapshotGas(string)":{"notice":"Start a snapshot capture of the current gas usage by name. The group name is derived from the contract name."},"startSnapshotGas(string,string)":{"notice":"Start a snapshot capture of the current gas usage by name in a group."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnDebugTraceRecording()":{"notice":"Stop debug trace recording and returns the recorded debug trace."},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopExpectSafeMemory()":{"notice":"Stops all safe memory expectation in the current subcontext."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"stopSnapshotGas()":{"notice":"Stop the snapshot capture of the current gas by latest snapshot name, capturing the gas used since the start."},"stopSnapshotGas(string)":{"notice":"Stop the snapshot capture of the current gas usage by name, capturing the gas used since the start. The group name is derived from the contract name."},"stopSnapshotGas(string,string)":{"notice":"Stop the snapshot capture of the current gas usage by name in a group, capturing the gas used since the start."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35} \ No newline at end of file diff --git a/out/Vm.sol/VmSafe.json b/out/Vm.sol/VmSafe.json new file mode 100644 index 0000000..31ee611 --- /dev/null +++ b/out/Vm.sol/VmSafe.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialReverts","type":"tuple[]","internalType":"struct VmSafe.PotentialRevert[]","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialRevert","type":"tuple","internalType":"struct VmSafe.PotentialRevert","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"attachDelegation","inputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcastRawTransaction","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"contains","inputs":[{"name":"subject","type":"string","internalType":"string"},{"name":"search","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyStorage","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"},{"name":"constructorArgs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByCode","inputs":[{"name":"code","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByDeployedCode","inputs":[{"name":"deployedCode","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBroadcast","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple","internalType":"struct VmSafe.BroadcastTxSummary","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployments","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddresses","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getFoundryVersion","inputs":[],"outputs":[{"name":"version","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getStateDiff","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStateDiffJson","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[],"outputs":[{"name":"wallets","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonTypeArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlTypeArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"publicKeyP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomBool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"randomBytes","inputs":[{"name":"len","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"randomBytes4","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"randomBytes8","inputs":[],"outputs":[{"name":"","type":"bytes8","internalType":"bytes8"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"language","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"rpc","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setArbitraryStorage","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signAndAttachDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startDebugTraceRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnDebugTraceRecording","inputs":[],"outputs":[{"name":"step","type":"tuple[]","internalType":"struct VmSafe.DebugStep[]","components":[{"name":"stack","type":"uint256[]","internalType":"uint256[]"},{"name":"memoryInput","type":"bytes","internalType":"bytes"},{"name":"opcode","type":"uint8","internalType":"uint8"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isOutOfGas","type":"bool","internalType":"bool"},{"name":"contractAddr","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","assumeNoRevert((address,bool,bytes))":"d8591eeb","assumeNoRevert((address,bool,bytes)[])":"8a4592cc","assumeNoRevert()":"285b366a","attachDelegation((uint8,bytes32,bytes32,uint64,address))":"14ae3519","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","contains(string,string)":"3fb18aec","copyFile(string,string)":"a54a87d8","copyStorage(address,address)":"203dac0d","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getArtifactPathByCode(bytes)":"eb74848c","getArtifactPathByDeployedCode(bytes)":"6d853ba5","getBlobBaseFee()":"1f6d6ef7","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getBroadcast(string,uint64,uint8)":"3dc90cb3","getBroadcasts(string,uint64)":"f2fa4a26","getBroadcasts(string,uint64,uint8)":"f7afe919","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getDeployment(string)":"a8091d97","getDeployment(string,uint64)":"0debd5d6","getDeployments(string,uint64)":"74e133dd","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","getStateDiff()":"80df01cc","getStateDiffJson()":"f54fe009","getWallets()":"db7a4605","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlType(string,string)":"47fa5e11","parseTomlType(string,string,string)":"f9fa5cdb","parseTomlTypeArray(string,string,string)":"49be3743","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","pauseTracing()":"c94d1f90","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","publicKeyP256(uint256)":"c453949e","randomAddress()":"d5bee9f5","randomBool()":"cdc126bd","randomBytes(uint256)":"6c5d32a9","randomBytes4()":"9b7cd579","randomBytes8()":"0497b0a5","randomInt()":"111f1202","randomInt(uint256)":"12845966","randomUint()":"25124730","randomUint(uint256)":"cf81e69c","randomUint(uint256,uint256)":"d61b051b","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","rememberKeys(string,string,string,uint32)":"f8d58eaf","rememberKeys(string,string,uint32)":"97cb9189","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetGasMetering()":"be367dd3","resumeGasMetering()":"2bcd50e0","resumeTracing()":"72a09ccb","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setArbitraryStorage(address)":"e1631837","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signAndAttachDelegation(address,uint256)":"c7fa7288","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signDelegation(address,uint256)":"5b593c7b","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startDebugTraceRecording()":"419c8832","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnDebugTraceRecording()":"ced398a2","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert[]\",\"name\":\"potentialReverts\",\"type\":\"tuple[]\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert\",\"name\":\"potentialRevert\",\"type\":\"tuple\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"name\":\"attachDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subject\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"search\",\"type\":\"string\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"copyStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"code\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByDeployedCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcast\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployments\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"deployedAddresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiff\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiffJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"wallets\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"publicKeyP256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"len\",\"type\":\"uint256\"}],\"name\":\"randomBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes8\",\"outputs\":[{\"internalType\":\"bytes8\",\"name\":\"\",\"type\":\"bytes8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resetGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"setArbitraryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signAndAttachDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startDebugTraceRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnDebugTraceRecording\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"stack\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"memoryInput\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isOutOfGas\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractAddr\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.DebugStep[]\",\"name\":\"step\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"assumeNoRevert((address,bool,bytes))\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters.\"},\"assumeNoRevert((address,bool,bytes)[])\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters.\"},\"assumeNoRevert()\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverted.\"},\"attachDelegation((uint8,bytes32,bytes32,uint64,address))\":{\"notice\":\"Designate the next call as an EIP-7702 transaction\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"contains(string,string)\":{\"notice\":\"Returns true if `search` is found in `subject`, false otherwise.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"copyStorage(address,address)\":{\"notice\":\"Utility cheatcode to copy storage of `from` contract to another `to` contract.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getArtifactPathByCode(bytes)\":{\"notice\":\"Gets the artifact path from code (aka. creation code).\"},\"getArtifactPathByDeployedCode(bytes)\":{\"notice\":\"Gets the artifact path from deployed code (aka. runtime code).\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBroadcast(string,uint64,uint8)\":{\"notice\":\"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`.\"},\"getBroadcasts(string,uint64)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getBroadcasts(string,uint64,uint8)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployment(string)\":{\"notice\":\"Returns the most recent deployment for the current `chainId`.\"},\"getDeployment(string,uint64)\":{\"notice\":\"Returns the most recent deployment for the given contract on `chainId`\"},\"getDeployments(string,uint64)\":{\"notice\":\"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"getStateDiff()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session.\"},\"getStateDiffJson()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session, in json format.\"},\"getWallets()\":{\"notice\":\"Returns addresses of available unlocked wallets in the script environment.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call from the callee perspective.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlType(string,string)\":{\"notice\":\"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlType(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlTypeArray(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"pauseTracing()\":{\"notice\":\"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"publicKeyP256(uint256)\":{\"notice\":\"Derives secp256r1 public key from the provided `privateKey`.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomBool()\":{\"notice\":\"Returns a random `bool`.\"},\"randomBytes(uint256)\":{\"notice\":\"Returns a random byte array value of the given length.\"},\"randomBytes4()\":{\"notice\":\"Returns a random fixed-size byte array of length 4.\"},\"randomBytes8()\":{\"notice\":\"Returns a random fixed-size byte array of length 8.\"},\"randomInt()\":{\"notice\":\"Returns a random `int256` value.\"},\"randomInt(uint256)\":{\"notice\":\"Returns a random `int256` value of given bits.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256)\":{\"notice\":\"Returns a random `uint256` value of given bits.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uint256 value between the provided range (=min..=max).\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"rememberKeys(string,string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"rememberKeys(string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetGasMetering()\":{\"notice\":\"Reset gas metering (i.e. gas usage is set to gas limit).\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"resumeTracing()\":{\"notice\":\"Unpauses collection of call traces.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setArbitraryStorage(address)\":{\"notice\":\"Utility cheatcode to set arbitrary storage for given target address.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signAndAttachDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization for delegation\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startDebugTraceRecording()\":{\"notice\":\"Records the debug trace during the run.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnDebugTraceRecording()\":{\"notice\":\"Stop debug trace recording and returns the recorded debug trace.\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert[]","name":"potentialReverts","type":"tuple[]","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert","name":"potentialRevert","type":"tuple","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"attachDelegation"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"broadcastRawTransaction"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"subject","type":"string"},{"internalType":"string","name":"search","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"copyStorage"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"deployedCode","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByDeployedCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcast","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployments","outputs":[{"internalType":"address[]","name":"deployedAddresses","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiff","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiffJson","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"pauseTracing"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"publicKeyP256","outputs":[{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"len","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes4","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes8","outputs":[{"internalType":"bytes8","name":"","type":"bytes8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"string","name":"language","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resetGasMetering"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"resumeTracing"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setArbitraryStorage"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signAndAttachDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startDebugTraceRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnDebugTraceRecording","outputs":[{"internalType":"struct VmSafe.DebugStep[]","name":"step","type":"tuple[]","components":[{"internalType":"uint256[]","name":"stack","type":"uint256[]"},{"internalType":"bytes","name":"memoryInput","type":"bytes"},{"internalType":"uint8","name":"opcode","type":"uint8"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isOutOfGas","type":"bool"},{"internalType":"address","name":"contractAddr","type":"address"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"assumeNoRevert((address,bool,bytes))":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters."},"assumeNoRevert((address,bool,bytes)[])":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters."},"assumeNoRevert()":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverted."},"attachDelegation((uint8,bytes32,bytes32,uint64,address))":{"notice":"Designate the next call as an EIP-7702 transaction"},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"broadcastRawTransaction(bytes)":{"notice":"Takes a signed transaction and broadcasts it to the network."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"contains(string,string)":{"notice":"Returns true if `search` is found in `subject`, false otherwise."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"copyStorage(address,address)":{"notice":"Utility cheatcode to copy storage of `from` contract to another `to` contract."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deployCode(string)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"deployCode(string,bytes)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getArtifactPathByCode(bytes)":{"notice":"Gets the artifact path from code (aka. creation code)."},"getArtifactPathByDeployedCode(bytes)":{"notice":"Gets the artifact path from deployed code (aka. runtime code)."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBroadcast(string,uint64,uint8)":{"notice":"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`."},"getBroadcasts(string,uint64)":{"notice":"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getBroadcasts(string,uint64,uint8)":{"notice":"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployment(string)":{"notice":"Returns the most recent deployment for the current `chainId`."},"getDeployment(string,uint64)":{"notice":"Returns the most recent deployment for the given contract on `chainId`"},"getDeployments(string,uint64)":{"notice":"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last."},"getFoundryVersion()":{"notice":"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get the nonce of a `Wallet`."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"getStateDiff()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session."},"getStateDiffJson()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session, in json format."},"getWallets()":{"notice":"Returns addresses of available unlocked wallets in the script environment."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call from the callee perspective."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonType(string,string)":{"notice":"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."},"parseJsonType(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."},"parseJsonTypeArray(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlType(string,string)":{"notice":"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`."},"parseTomlType(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`."},"parseTomlTypeArray(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"pauseTracing()":{"notice":"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"publicKeyP256(uint256)":{"notice":"Derives secp256r1 public key from the provided `privateKey`."},"randomAddress()":{"notice":"Returns a random `address`."},"randomBool()":{"notice":"Returns a random `bool`."},"randomBytes(uint256)":{"notice":"Returns a random byte array value of the given length."},"randomBytes4()":{"notice":"Returns a random fixed-size byte array of length 4."},"randomBytes8()":{"notice":"Returns a random fixed-size byte array of length 8."},"randomInt()":{"notice":"Returns a random `int256` value."},"randomInt(uint256)":{"notice":"Returns a random `int256` value of given bits."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256)":{"notice":"Returns a random `uint256` value of given bits."},"randomUint(uint256,uint256)":{"notice":"Returns random uint256 value between the provided range (=min..=max)."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"rememberKeys(string,string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"rememberKeys(string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetGasMetering()":{"notice":"Reset gas metering (i.e. gas usage is set to gas limit)."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"resumeTracing()":{"notice":"Unpauses collection of call traces."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpc(string,string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the given endpoint."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeJsonType(string,bytes)":{"notice":"See `serializeJson`."},"serializeJsonType(string,string,string,bytes)":{"notice":"See `serializeJson`."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setArbitraryStorage(address)":{"notice":"Utility cheatcode to set arbitrary storage for given target address."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signAndAttachDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction"},"signCompact((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signCompact(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address."},"signCompact(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"signCompact(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization for delegation"},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startDebugTraceRecording()":{"notice":"Records the debug trace during the run."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnDebugTraceRecording()":{"notice":"Stop debug trace recording and returns the recorded debug trace."},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35} \ No newline at end of file diff --git a/out/build-info/8794160e65dfedcb744790f912986909.json b/out/build-info/8794160e65dfedcb744790f912986909.json new file mode 100644 index 0000000..d50be65 --- /dev/null +++ b/out/build-info/8794160e65dfedcb744790f912986909.json @@ -0,0 +1 @@ +{"id":"8794160e65dfedcb744790f912986909","source_id_to_path":{"0":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","1":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","2":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","3":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","4":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","5":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","6":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","7":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","8":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","9":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","10":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","11":"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","12":"lib/openzeppelin-contracts/contracts/utils/Context.sol","13":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","14":"lib/openzeppelin-contracts/contracts/utils/Pausable.sol","15":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","16":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","17":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","18":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","19":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","20":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","21":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","22":"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol","23":"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol","24":"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol","25":"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol","26":"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol","27":"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol","28":"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol","29":"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol","30":"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol","31":"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol","32":"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol","33":"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol","34":"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol","35":"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol","36":"lib/openzeppelin-contracts/lib/forge-std/src/console.sol","37":"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol","38":"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol","39":"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol","40":"src/OGRE20.sol","41":"src/OGRE721.sol","42":"src/OGREBridge.sol","43":"src/OGREDAO.sol","44":"src/OGREMarket.sol","45":"src/OGREProposal.sol","46":"src/OGRETokenizedMarket.sol","47":"src/OGRETokenizedTreasury.sol","48":"src/OGRETreasury.sol","49":"src/abstract/ActionHopper.sol","50":"src/abstract/ERC721Receivable.sol","51":"src/abstract/OGREFactory.sol","52":"src/abstract/stub/StubActionHopper.sol","53":"src/abstract/stub/StubERC721Receivable.sol","54":"src/abstract/stub/StubOGREFactory.sol","55":"src/factories/OGRE20Factory.sol","56":"src/factories/OGRE721Factory.sol","57":"src/factories/OGREDAOFactory.sol","58":"src/factories/OGREMarketFactory.sol","59":"src/factories/OGREProposalFactory.sol","60":"src/factories/OGRETreasuryFactory.sol","61":"src/interfaces/IOGRE20Factory.sol","62":"src/interfaces/IOGRE721.sol","63":"src/interfaces/IOGRE721Factory.sol","64":"src/interfaces/IOGREDAO.sol","65":"src/interfaces/IOGREDAOFactory.sol","66":"src/interfaces/IOGREMarket.sol","67":"src/interfaces/IOGREMarketFactory.sol","68":"src/interfaces/IOGREProposal.sol","69":"src/interfaces/IOGREProposalFactory.sol","70":"src/interfaces/IOGRETreasury.sol","71":"src/interfaces/IOGRETreasuryFactory.sol","72":"src/libraries/Constants.sol","73":"src/libraries/Enums.sol","74":"src/libraries/Structs.sol","75":"test/OGRETest.t.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/console.sol/console.json b/out/console.sol/console.json new file mode 100644 index 0000000..178a4f6 --- /dev/null +++ b/out/console.sol/console.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212206ca62f98b71caf0ebd2e4de899bf2dfc7f53fec4f0614a64b77b35644d7b70c164736f6c63430008140033","sourceMap":"66:69203:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:69203:36;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212206ca62f98b71caf0ebd2e4de899bf2dfc7f53fec4f0614a64b77b35644d7b70c164736f6c63430008140033","sourceMap":"66:69203:36:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":"console"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC1155Errors.json b/out/draft-IERC6093.sol/IERC1155Errors.json new file mode 100644 index 0000000..9807aa5 --- /dev/null +++ b/out/draft-IERC6093.sol/IERC1155Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC20Errors.json b/out/draft-IERC6093.sol/IERC20Errors.json new file mode 100644 index 0000000..69b5f2d --- /dev/null +++ b/out/draft-IERC6093.sol/IERC20Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC721Errors.json b/out/draft-IERC6093.sol/IERC721Errors.json new file mode 100644 index 0000000..c7069b9 --- /dev/null +++ b/out/draft-IERC6093.sol/IERC721Errors.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/safeconsole.sol/safeconsole.json b/out/safeconsole.sol/safeconsole.json new file mode 100644 index 0000000..e608f81 --- /dev/null +++ b/out/safeconsole.sol/safeconsole.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f2aacad268e83a3b2ab22fc7e460fb01df19db8b5c8843c5a5136edf7924fdb764736f6c63430008140033","sourceMap":"163:427371:39:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;163:427371:39;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f2aacad268e83a3b2ab22fc7e460fb01df19db8b5c8843c5a5136edf7924fdb764736f6c63430008140033","sourceMap":"163:427371:39:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index b017c84..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7427 +0,0 @@ -{ - "name": "ogre", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "ogre", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@openzeppelin/contracts": "^4.3.0" - }, - "devDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^1.0.2", - "@nomiclabs/hardhat-ethers": "^2.0.5", - "chai": "^4.3.6", - "ethers": "^5.6.0", - "hardhat": "^2.9.1" - } - }, - "node_modules/@ethereumjs/block": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", - "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "ethereumjs-util": "^7.1.5", - "merkle-patricia-tree": "^4.2.4" - } - }, - "node_modules/@ethereumjs/blockchain": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", - "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/ethash": "^1.1.0", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/ethash": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", - "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.5.0", - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.1.1", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/@ethereumjs/ethash/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/vm": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.3.tgz", - "integrity": "sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.3", - "@ethereumjs/blockchain": "^5.5.3", - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.4", - "rustbn.js": "~0.2.0" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.0.tgz", - "integrity": "sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz", - "integrity": "sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.0.tgz", - "integrity": "sha512-3hJPlYemb9V4VLfJF5BfN0+55vltPZSHU3QKUyP9M3Y2TcajbiRrz65UG+xVHOzBereB1b9mn7r12o177xgN7w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.0.tgz", - "integrity": "sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.0.tgz", - "integrity": "sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz", - "integrity": "sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.0.tgz", - "integrity": "sha512-DaVzgyThzHgSDLuURhvkp4oviGoGe9iTZW4jMEORHDRCgSZ9K9THGFKqL+qGXqPAYLEgZTf5z2w56mRrPR1MjQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz", - "integrity": "sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/sha2": "^5.6.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.0.tgz", - "integrity": "sha512-6+5PKXTWAttJWFWF8+xCDTCa2/dtq9BNrdKQHGl0IyIOwj99vM6OeThmIRcsIAzIOb8m0XS6w+1KFZwrf3j9nw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@ethersproject/random": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz", - "integrity": "sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz", - "integrity": "sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/sha2/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.0.tgz", - "integrity": "sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz", - "integrity": "sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz", - "integrity": "sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.0.tgz", - "integrity": "sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/json-wallets": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz", - "integrity": "sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz", - "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.2.tgz", - "integrity": "sha512-ZPcruE17yv8M/d9GYGz7l/iYEycwlA3t7rq1cfUEWPj7kIxJ5tSJEzPi2SqHj8LZdcsiU5FF/y/9W8ZFk0FHfw==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "chalk": "^2.4.2", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" - }, - "peerDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.0", - "chai": "^4.2.0", - "ethers": "^5.0.0", - "hardhat": "^2.9.4" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/deep-eql": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.0.tgz", - "integrity": "sha512-4YM7QHOMBoVWqGPnp3OPPK7+WCIhUR2OTpahlNQFiyTH3QEeiu9MtBiTAJBkfny4PNhpFbV/jm3lv0iCfb40MA==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.5.tgz", - "integrity": "sha512-A2gZAGB6kUvLx+kzM92HKuUF33F1FSe90L0TmkXkT2Hh0OKRpvWZURUSU2nghD2yC4DzfEZ3DftfeHGvZ2JTUw==", - "dev": true, - "peerDependencies": { - "ethers": "^5.0.0", - "hardhat": "^2.0.0" - } - }, - "node_modules/@openzeppelin/contracts": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.8.1.tgz", - "integrity": "sha512-xQ6eUZl+RDyb/FiZe1h+U7qr/f4p/SrTSQcTPH2bjur3C5DbuW/zFgCU/b1P/xcIaEqJep+9ju4xDRi3rmChdQ==" - }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@solidity-parser/parser": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.3.tgz", - "integrity": "sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/@types/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", - "dev": true - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", - "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, - "node_modules/@types/levelup": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", - "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", - "dev": true, - "dependencies": { - "@types/abstract-leveldown": "*", - "@types/level-errors": "*", - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.20.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", - "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==", - "dev": true - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/core-js-pure": { - "version": "3.23.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz", - "integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereum-cryptography/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ethereum-cryptography/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/ethers": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.0.tgz", - "integrity": "sha512-00FP71jt6bW3ndO5DhgH9mLIZhoCGnAKFLu8qig5KmV03ubEChKf2ilB3g6fX512tTYo+tSMDJ5WpCJWdBHkBQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.6.0", - "@ethersproject/abstract-provider": "5.6.0", - "@ethersproject/abstract-signer": "5.6.0", - "@ethersproject/address": "5.6.0", - "@ethersproject/base64": "5.6.0", - "@ethersproject/basex": "5.6.0", - "@ethersproject/bignumber": "5.6.0", - "@ethersproject/bytes": "5.6.0", - "@ethersproject/constants": "5.6.0", - "@ethersproject/contracts": "5.6.0", - "@ethersproject/hash": "5.6.0", - "@ethersproject/hdnode": "5.6.0", - "@ethersproject/json-wallets": "5.6.0", - "@ethersproject/keccak256": "5.6.0", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.0", - "@ethersproject/pbkdf2": "5.6.0", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.0", - "@ethersproject/random": "5.6.0", - "@ethersproject/rlp": "5.6.0", - "@ethersproject/sha2": "5.6.0", - "@ethersproject/signing-key": "5.6.0", - "@ethersproject/solidity": "5.6.0", - "@ethersproject/strings": "5.6.0", - "@ethersproject/transactions": "5.6.0", - "@ethersproject/units": "5.6.0", - "@ethersproject/wallet": "5.6.0", - "@ethersproject/web": "5.6.0", - "@ethersproject/wordlists": "5.6.0" - } - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/hardhat": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.10.1.tgz", - "integrity": "sha512-0FN9TyCtn7Lt25SB2ei2G7nA2rZjP+RN6MvFOm+zYwherxLZNo6RbD8nDz88eCbhRapevmXqOiL2nM8INKsjmA==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/blockchain": "^5.5.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/tx": "^3.5.1", - "@ethereumjs/vm": "^5.9.0", - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@sentry/node": "^5.18.1", - "@solidity-parser/parser": "^0.14.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "abort-controller": "^3.0.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^7.1.4", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "lodash": "^4.17.11", - "merkle-patricia-tree": "^4.2.4", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "qs": "^6.7.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "slash": "^3.0.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "true-case-path": "^2.2.1", - "tsort": "0.0.1", - "undici": "^5.4.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/cli.js" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || ^18.0.0" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/hardhat/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/hardhat/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hardhat/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hardhat/node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" - } - }, - "node_modules/hardhat/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hardhat/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hardhat/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hardhat/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/hardhat/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/hardhat/node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/hardhat/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/hardhat/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/hardhat/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/hardhat/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-mem": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", - "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", - "dev": true, - "dependencies": { - "level-packager": "^5.0.3", - "memdown": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-ws": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", - "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, - "node_modules/mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", - "dev": true, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memdown": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", - "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", - "dev": true - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merkle-patricia-tree": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz", - "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==", - "dev": true, - "dependencies": { - "@types/levelup": "^4.3.0", - "ethereumjs-util": "^7.1.4", - "level-mem": "^5.0.1", - "level-ws": "^2.0.0", - "readable-stream": "^3.6.0", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", - "dev": true, - "dependencies": { - "obliterator": "^2.0.0" - } - }, - "node_modules/mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", - "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true - }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obliterator": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.2.tgz", - "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/ordinal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", - "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", - "dev": true - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semaphore-async-await": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", - "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", - "dev": true, - "engines": { - "node": ">=4.1" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/undici": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", - "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", - "dev": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=12.18" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", - "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ethereumjs/block": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.3.tgz", - "integrity": "sha512-CegDeryc2DVKnDkg5COQrE0bJfw/p0v3GBk2W5/Dj5dOVfEmb50Ux0GLnSPypooLnfqjwFaorGuT9FokWB3GRg==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "ethereumjs-util": "^7.1.5", - "merkle-patricia-tree": "^4.2.4" - } - }, - "@ethereumjs/blockchain": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.3.tgz", - "integrity": "sha512-bi0wuNJ1gw4ByNCV56H0Z4Q7D+SxUbwyG12Wxzbvqc89PXLRNR20LBcSUZRKpN0+YCPo6m0XZL/JLio3B52LTw==", - "dev": true, - "requires": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/ethash": "^1.1.0", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "semaphore-async-await": "^1.5.1" - } - }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethereumjs/ethash": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz", - "integrity": "sha512-/U7UOKW6BzpA+Vt+kISAoeDie1vAvY4Zy2KF5JJb+So7+1yKmJeJEHOGSnQIj330e9Zyl3L5Nae6VZyh2TJnAA==", - "dev": true, - "requires": { - "@ethereumjs/block": "^3.5.0", - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.1.1", - "miller-rabin": "^4.0.0" - }, - "dependencies": { - "buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethereumjs/vm": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.3.tgz", - "integrity": "sha512-Ha04TeF8goEglr8eL7hkkYyjhzdZS0PsoRURzYlTF6I0VVId5KjKb0N7MrA8GMgheN+UeTncfTgYx52D/WhEmg==", - "dev": true, - "requires": { - "@ethereumjs/block": "^3.6.3", - "@ethereumjs/blockchain": "^5.5.3", - "@ethereumjs/common": "^2.6.5", - "@ethereumjs/tx": "^3.5.2", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^4.3.3", - "ethereumjs-util": "^7.1.5", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.4", - "rustbn.js": "~0.2.0" - } - }, - "@ethersproject/abi": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.0.tgz", - "integrity": "sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg==", - "dev": true, - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0" - } - }, - "@ethersproject/basex": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz", - "integrity": "sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.0.tgz", - "integrity": "sha512-3hJPlYemb9V4VLfJF5BfN0+55vltPZSHU3QKUyP9M3Y2TcajbiRrz65UG+xVHOzBereB1b9mn7r12o177xgN7w==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/contracts": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.0.tgz", - "integrity": "sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.0.tgz", - "integrity": "sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz", - "integrity": "sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==", - "dev": true, - "requires": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", - "dev": true - }, - "@ethersproject/networks": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.0.tgz", - "integrity": "sha512-DaVzgyThzHgSDLuURhvkp4oviGoGe9iTZW4jMEORHDRCgSZ9K9THGFKqL+qGXqPAYLEgZTf5z2w56mRrPR1MjQ==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz", - "integrity": "sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/sha2": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "dev": true, - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/providers": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.0.tgz", - "integrity": "sha512-6+5PKXTWAttJWFWF8+xCDTCa2/dtq9BNrdKQHGl0IyIOwj99vM6OeThmIRcsIAzIOb8m0XS6w+1KFZwrf3j9nw==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0", - "bech32": "1.1.4", - "ws": "7.4.6" - }, - "dependencies": { - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz", - "integrity": "sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/sha2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz", - "integrity": "sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "hash.js": "1.1.7" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/signing-key": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.0.tgz", - "integrity": "sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - } - } - }, - "@ethersproject/solidity": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz", - "integrity": "sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", - "dev": true, - "requires": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" - } - }, - "@ethersproject/units": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz", - "integrity": "sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==", - "dev": true, - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/wallet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.0.tgz", - "integrity": "sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/json-wallets": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" - } - }, - "@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", - "dev": true, - "requires": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz", - "integrity": "sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" - } - }, - "@metamask/eth-sig-util": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz", - "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==", - "dev": true, - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - } - } - }, - "@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "dev": true - }, - "@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "dev": true - }, - "@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.2.tgz", - "integrity": "sha512-ZPcruE17yv8M/d9GYGz7l/iYEycwlA3t7rq1cfUEWPj7kIxJ5tSJEzPi2SqHj8LZdcsiU5FF/y/9W8ZFk0FHfw==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.1.2", - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "chalk": "^2.4.2", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" - }, - "dependencies": { - "deep-eql": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.0.tgz", - "integrity": "sha512-4YM7QHOMBoVWqGPnp3OPPK7+WCIhUR2OTpahlNQFiyTH3QEeiu9MtBiTAJBkfny4PNhpFbV/jm3lv0iCfb40MA==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - } - } - }, - "@nomiclabs/hardhat-ethers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.5.tgz", - "integrity": "sha512-A2gZAGB6kUvLx+kzM92HKuUF33F1FSe90L0TmkXkT2Hh0OKRpvWZURUSU2nghD2yC4DzfEZ3DftfeHGvZ2JTUw==", - "dev": true, - "requires": {} - }, - "@openzeppelin/contracts": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.8.1.tgz", - "integrity": "sha512-xQ6eUZl+RDyb/FiZe1h+U7qr/f4p/SrTSQcTPH2bjur3C5DbuW/zFgCU/b1P/xcIaEqJep+9ju4xDRi3rmChdQ==" - }, - "@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "dev": true - }, - "@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "dev": true, - "requires": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" - } - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "dev": true, - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "requires": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "requires": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "requires": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true - }, - "@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "requires": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "@solidity-parser/parser": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.3.tgz", - "integrity": "sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw==", - "dev": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "@types/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", - "dev": true - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/chai": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", - "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", - "dev": true - }, - "@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, - "@types/levelup": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", - "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", - "dev": true, - "requires": { - "@types/abstract-leveldown": "*", - "@types/level-errors": "*", - "@types/node": "*" - } - }, - "@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "@types/node": { - "version": "12.20.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.25.tgz", - "integrity": "sha512-hcTWqk7DR/HrN9Xe7AlJwuCaL13Vcd9/g/T54YrJz4Q3ESM5mr33YCzW2bOfzSIc3aZMeGBvbLGvgN6mIJ0I5Q==", - "dev": true - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "requires": { - "async": "^2.4.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", - "dev": true - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "node-gyp-build": "^4.2.0" - } - }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "requires": { - "streamsearch": "^1.1.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "core-js-pure": { - "version": "3.23.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz", - "integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw==", - "dev": true - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - } - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "requires": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - } - } - }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - } - } - }, - "ethers": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.0.tgz", - "integrity": "sha512-00FP71jt6bW3ndO5DhgH9mLIZhoCGnAKFLu8qig5KmV03ubEChKf2ilB3g6fX512tTYo+tSMDJ5WpCJWdBHkBQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "5.6.0", - "@ethersproject/abstract-provider": "5.6.0", - "@ethersproject/abstract-signer": "5.6.0", - "@ethersproject/address": "5.6.0", - "@ethersproject/base64": "5.6.0", - "@ethersproject/basex": "5.6.0", - "@ethersproject/bignumber": "5.6.0", - "@ethersproject/bytes": "5.6.0", - "@ethersproject/constants": "5.6.0", - "@ethersproject/contracts": "5.6.0", - "@ethersproject/hash": "5.6.0", - "@ethersproject/hdnode": "5.6.0", - "@ethersproject/json-wallets": "5.6.0", - "@ethersproject/keccak256": "5.6.0", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.0", - "@ethersproject/pbkdf2": "5.6.0", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.0", - "@ethersproject/random": "5.6.0", - "@ethersproject/rlp": "5.6.0", - "@ethersproject/sha2": "5.6.0", - "@ethersproject/signing-key": "5.6.0", - "@ethersproject/solidity": "5.6.0", - "@ethersproject/strings": "5.6.0", - "@ethersproject/transactions": "5.6.0", - "@ethersproject/units": "5.6.0", - "@ethersproject/wallet": "5.6.0", - "@ethersproject/web": "5.6.0", - "@ethersproject/wordlists": "5.6.0" - } - }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true - }, - "fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "hardhat": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.10.1.tgz", - "integrity": "sha512-0FN9TyCtn7Lt25SB2ei2G7nA2rZjP+RN6MvFOm+zYwherxLZNo6RbD8nDz88eCbhRapevmXqOiL2nM8INKsjmA==", - "dev": true, - "requires": { - "@ethereumjs/block": "^3.6.2", - "@ethereumjs/blockchain": "^5.5.2", - "@ethereumjs/common": "^2.6.4", - "@ethereumjs/tx": "^3.5.1", - "@ethereumjs/vm": "^5.9.0", - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@sentry/node": "^5.18.1", - "@solidity-parser/parser": "^0.14.2", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "abort-controller": "^3.0.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^7.1.4", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "lodash": "^4.17.11", - "merkle-patricia-tree": "^4.2.4", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "qs": "^6.7.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "slash": "^3.0.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "true-case-path": "^2.2.1", - "tsort": "0.0.1", - "undici": "^5.4.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "dev": true, - "requires": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true, - "requires": {} - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "requires": { - "fp-ts": "^1.0.0" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "dev": true, - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "requires": { - "buffer": "^5.6.0" - } - }, - "level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true - }, - "level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "requires": { - "errno": "~0.1.1" - } - }, - "level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - } - }, - "level-mem": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", - "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", - "dev": true, - "requires": { - "level-packager": "^5.0.3", - "memdown": "^5.0.0" - } - }, - "level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "requires": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - } - }, - "level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "requires": { - "xtend": "^4.0.2" - } - }, - "level-ws": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", - "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.0", - "xtend": "^4.0.1" - } - }, - "levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "requires": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, - "mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "memdown": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", - "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", - "dev": true, - "requires": { - "abstract-leveldown": "~6.2.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg==", - "dev": true - } - } - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "merkle-patricia-tree": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz", - "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==", - "dev": true, - "requires": { - "@types/levelup": "^4.3.0", - "ethereumjs-util": "^7.1.4", - "level-mem": "^5.0.1", - "level-ws": "^2.0.0", - "readable-stream": "^3.6.0", - "semaphore-async-await": "^1.5.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", - "dev": true, - "requires": { - "obliterator": "^2.0.0" - } - }, - "mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", - "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "obliterator": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.2.tgz", - "integrity": "sha512-g0TrA7SbUggROhDPK8cEu/qpItwH2LSKcNl4tlfBNT54XY+nOsqrs0Q68h1V9b3HOSpIWv15jb1lax2hAggdIg==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "ordinal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", - "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, - "requires": { - "bn.js": "^4.11.1" - } - }, - "rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semaphore-async-await": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", - "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "requires": { - "type-fest": "^0.7.1" - }, - "dependencies": { - "type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true - } - } - }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true - }, - "tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "undici": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", - "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", - "dev": true, - "requires": { - "busboy": "^1.6.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "utf-8-validate": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", - "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "node-gyp-build": "^4.2.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 418b91d..0000000 --- a/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "ogre", - "version": "1.0.0", - "description": "Open Governance Referendum Engine", - "main": "truffle-config.js", - "directories": { - "test": "test" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Dappetizer/OGRE.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/Dappetizer/OGRE/issues" - }, - "homepage": "https://github.com/Dappetizer/OGRE#readme", - "dependencies": { - "@openzeppelin/contracts": "^4.3.0" - }, - "devDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^1.0.2", - "@nomiclabs/hardhat-ethers": "^2.0.5", - "chai": "^4.3.6", - "ethers": "^5.6.0", - "hardhat": "^2.9.1" - } -} diff --git a/remappings.txt b/remappings.txt new file mode 100644 index 0000000..271a28a --- /dev/null +++ b/remappings.txt @@ -0,0 +1,5 @@ +@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ +erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/ +forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/ +halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/ +openzeppelin-contracts/=lib/openzeppelin-contracts/ diff --git a/scripts/deployFactories.js b/scripts/deployFactories.js deleted file mode 100644 index 71afa26..0000000 --- a/scripts/deployFactories.js +++ /dev/null @@ -1,40 +0,0 @@ -const hardhat = require("hardhat"); - -async function main() { - //deploy ogre 20 factory - const OGRE20FactoryDeployer = await ethers.getContractFactory("OGRE20Factory"); - const ogre20 = await OGRE20FactoryDeployer.deploy(); - await ogre20.deployed(); - console.log("OGRE721Factory deployed to:", ogre20.address); - - //deploy ogre 721 factory - const OGRE721FactoryDeployer = await ethers.getContractFactory("OGRE721Factory"); - const ogre721 = await OGRE721FactoryDeployer.deploy(); - await ogre721.deployed(); - console.log("OGRE721Factory deployed to:", ogre721.address); - - //deploy ogre dao factory - const OGREDAOFactoryDeployer = await ethers.getContractFactory("OGREDAOFactory"); - const dao = await OGREDAOFactoryDeployer.deploy(); - await dao.deployed(); - console.log("OGREDAOFactory deployed to:", dao.address); - - //deploy ogre proposal factory - const OGREProposalFactoryDeployer = await ethers.getContractFactory("OGREProposalFactory"); - const proposal = await OGREProposalFactoryDeployer.deploy(); - await proposal.deployed(); - console.log("OGREProposalFactory deployed to:", proposal.address); - - //deploy ogre market factory - const OGREMarketFactoryDeployer = await ethers.getContractFactory("OGREMarketFactory"); - const mkt = await OGREMarketFactoryDeployer.deploy(); - await mkt.deployed(); - console.log("OGREMarketFactory deployed to:", mkt.address); -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error); - process.exit(1); - }); \ No newline at end of file diff --git a/scripts/populate.js b/scripts/populate.js deleted file mode 100644 index 9801950..0000000 --- a/scripts/populate.js +++ /dev/null @@ -1,177 +0,0 @@ -const { ethers } = require("hardhat"); -const hardhat = require("hardhat"); - -async function main() { - //signers - let userA; - let userB; - let userC; - let addrs; - - //get signers - [userA, userB, userC, ...addrs] = await ethers.getSigners(); - - //---------- Deploy Factories ---------- - - //deploy ogre 20 factory - const OGRE20FactoryDeployer = await ethers.getContractFactory("OGRE20Factory"); - const OGRE20Factory = await OGRE20FactoryDeployer.deploy(); - await OGRE20Factory.deployed(); - console.log("OGRE20Factory deployed to:", OGRE20Factory.address); - - //deploy ogre nft factory - const OGRE721FactoryDeployer = await ethers.getContractFactory("OGRE721Factory"); - const OGRE721Factory = await OGRE721FactoryDeployer.deploy(); - await OGRE721Factory.deployed(); - console.log("OGRE721Factory deployed to:", OGRE721Factory.address); - - //deploy ogre dao factory - const OGREDAOFactoryDeployer = await ethers.getContractFactory("OGREDAOFactory"); - const OGREDAOFactory = await OGREDAOFactoryDeployer.deploy(); - await OGREDAOFactory.deployed(); - console.log("OGREDAOFactory deployed to:", OGREDAOFactory.address); - - //deploy ogre proposal factory - const OGREProposalFactoryDeployer = await ethers.getContractFactory("OGREProposalFactory"); - const OGREProposalFactory = await OGREProposalFactoryDeployer.deploy(); - await OGREProposalFactory.deployed(); - console.log("OGREProposalFactory deployed to:", OGREProposalFactory.address); - - //deploy ogre market factory - const OGREMarketFactoryDeployer = await ethers.getContractFactory("OGREMarketFactory"); - const OGREMarketFactory = await OGREMarketFactoryDeployer.deploy(); - await OGREMarketFactory.deployed(); - console.log("OGREMarketFactory deployed to:", OGREMarketFactory.address); - - //---------- Produce Contracts ---------- - - //produce ogre 20 contract - let ogre20Name = "OGRE20 Test"; - let ogre20Symbol = "TEST20"; - let ogre20Owner = userA.address; - - let ogre20ProduceTrx = await OGRE20Factory.produceOGRE20(ogre20Name, ogre20Symbol, ogre20Owner); - let ogre20ProduceReceipt = await ogre20ProduceTrx.wait(); - - const OGRE20Deployer = await ethers.getContractFactory("OGRE20"); - let OGRE20 = OGRE20Deployer.attach(ogre20ProduceReceipt.events[2].args['contractAddress']); - console.log("OGRE20 contract deployed to:", OGRE20.address) - - //produce ogre 721 contract - let ogre721Name = "OGRE721 Test"; - let ogre721Symbol = "TEST721"; - let ogre721Owner = userA.address; - - let trx1 = await OGRE721Factory.produceOGRE721(ogre721Name, ogre721Symbol, ogre721Owner); - let receipt1 = await trx1.wait(); - - const OGRE721Deployer = await ethers.getContractFactory("OGRE721"); - let OGRE721 = OGRE721Deployer.attach(receipt1.events[2].args['contractAddress']); - console.log("OGRE721 contract deployed to:", OGRE721.address) - - //produce ogre dao contract - let daoName = "Test DAO"; - let daoMeta = ""; - let proposalCost = 0; - let delay = 300; - - let trx2 = await OGREDAOFactory.produceOGREDAO(daoName, daoMeta, OGRE721.address, OGREProposalFactory.address, proposalCost, userA.address, delay); - let receipt2 = await trx2.wait(); - - const OGREDAODeployer = await ethers.getContractFactory("OGREDAO"); - let OGREDAO = OGREDAODeployer.attach(receipt2.events[4].args['contractAddress']); - console.log("OGREDAO contract deployed to:", OGREDAO.address); - - //produce ogre market contract - let orderFee = ethers.utils.parseEther("0.001"); - let mktTrx = await OGREMarketFactory.produceOGREMarket(OGREDAO.address, userA.address, orderFee, userA.address); - let mktReceipt = await mktTrx.wait(); - - const OGREMarketDeployer = await ethers.getContractFactory("OGREMarket"); - let OGREMarket = OGREMarketDeployer.attach(mktReceipt.events[4].args['contractAddress']); - console.log("OGREMarket contract deployed to:", OGREMarket.address); - - //---------- Mint and Register NFTs ---------- - - OGREDAO.connect(userA); - OGRE721.connect(userA); - - //mint nfts to userA (starting at token id 0) - let count = 10; - for (let i = 0; i < count; i++) { - await OGRE721.mint(userA.address, i); - await OGREDAO.registerMember(i); - } - - //---------- Create Proposal ---------- - - //draft proposal - let proposalTitle = "Test Proposal"; - let trx3 = await OGREDAO.draftProposal(proposalTitle); - let receipt3 = await trx3.wait(); - - const OGREProposalDeployer = await ethers.getContractFactory("OGREProposal"); - let OGREProposal = OGREProposalDeployer.attach(receipt3.events[4].args['proposal']); - console.log("OGREProposal contract deployed to:", OGREProposal.address); - - //start proposal - const prevBlockNum = await ethers.provider.getBlockNumber(); - const prevBlock = await ethers.provider.getBlock(prevBlockNum); - const prevTimestamp = prevBlock.timestamp; - - let votePeriodLength = 300; //in seconds - let startTime = prevTimestamp + 1; //add 1 since start time must be in future - let endTime = startTime + votePeriodLength; - await OGREProposal.setVotingPeriod(startTime, endTime); - - //---------- Cast Votes on Proposal ---------- - - //cast votes - let voteCount = 10; - for (let i = 0; i < voteCount; i++) { - await OGREProposal.castVote(i, 1); //yes votes - } - //advance network time - // await network.provider.send("evm_setNextBlockTimestamp", [endTime + 1]); //add one to go past end time - // await network.provider.send("evm_mine") // this one will have end time as its timestamp - - //---------- Create Asks and Bids ---------- - - let tokenId = 1; - let amount = 10; - - //mint erc20 tokens to userB - OGRE20 = OGRE20.connect(userA); - await OGRE20.mint(userB.address, 100); - - //approve erc721 token to OGREMarket - OGRE721 = OGRE721.connect(userA); - await OGRE721.approve(OGREMarket.address, tokenId); - - //approve erc20 allowance to OGREMarket - OGRE20 = OGRE20.connect(userB); - await OGRE20.approve(OGREMarket.address, 100); - - //add erc20 and erc721 contracts to allowlist - OGREMarket = OGREMarket.connect(userA); - await OGREMarket.setContractAllowed(OGRE20.address, true); - await OGREMarket.setContractAllowed(OGRE721.address, true); - - //create ask - // OGREMarket = OGREMarket.connect(userA); - // await OGREMarket.createAsk(OGRE721.address, tokenId, OGRE20.address, amount, {value: orderFee}); - - //create bids - // OGREMarket = OGREMarket.connect(userB); - // let bidCount = 10; - // for (let i = 0; i < bidCount; i++) { - // await OGREMarket.createBid(OGRE721.address, i + 1, OGRE20.address, amount, {value: orderFee}); - // } -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error); - process.exit(1); - }); \ No newline at end of file diff --git a/contracts/OGRE20.sol b/src/OGRE20.sol similarity index 63% rename from contracts/OGRE20.sol rename to src/OGRE20.sol index 3be8413..867191e 100644 --- a/contracts/OGRE20.sol +++ b/src/OGRE20.sol @@ -1,18 +1,16 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; -import "../node_modules/@openzeppelin/contracts/security/Pausable.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; /** * @title Open Governance Referendum Engine ERC20 Contract */ contract OGRE20 is Ownable, Pausable, ERC20 { - constructor(string memory name_, string memory symbol_, address owner_) ERC20(name_, symbol_) { - transferOwnership(owner_); - } + constructor(string memory name_, string memory symbol_, address owner_) Ownable(owner_) ERC20(name_, symbol_) {} /** * @dev mint token amount diff --git a/contracts/OGRE721.sol b/src/OGRE721.sol similarity index 57% rename from contracts/OGRE721.sol rename to src/OGRE721.sol index e679ba1..89506df 100644 --- a/contracts/OGRE721.sol +++ b/src/OGRE721.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; -import "../node_modules/@openzeppelin/contracts/security/Pausable.sol"; -// import "../node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +// import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; // import "hardhat/console.sol"; @@ -13,9 +13,7 @@ import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol"; */ contract OGRE721 is Ownable, Pausable, ERC721 { - constructor(string memory name_, string memory symbol_, address owner_) ERC721(name_, symbol_) { - transferOwnership(owner_); - } + constructor(string memory name_, string memory symbol_, address owner_) Ownable(owner_) ERC721(name_, symbol_) {} /** * @dev mint token id diff --git a/contracts/OGREBridge.sol b/src/OGREBridge.sol similarity index 86% rename from contracts/OGREBridge.sol rename to src/OGREBridge.sol index 7ba3be4..a5e622e 100644 --- a/contracts/OGREBridge.sol +++ b/src/OGREBridge.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; -import "../node_modules/@openzeppelin/contracts/security/Pausable.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -// import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +// import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; contract OGREBridge is Ownable, Pausable { @@ -18,9 +18,7 @@ contract OGREBridge is Ownable, Pausable { event ItemDeposited(address nftAddress, uint256 tokenId, address depositor, uint256 destinationChainId); event ItemWithdrawn(address nftAddress, uint256 tokenId, address recipient); - constructor(address owner_) { - transferOwnership(owner_); - } + constructor(address owner_) Ownable(owner_) {} function toggleApprovedChain(uint256 chainId) public onlyOwner { approvedChains[chainId] = !approvedChains[chainId]; diff --git a/contracts/OGREDAO.sol b/src/OGREDAO.sol similarity index 96% rename from contracts/OGREDAO.sol rename to src/OGREDAO.sol index 83888a1..8ba50c5 100644 --- a/contracts/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/access/AccessControl.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/access/AccessControl.sol"; import "./interfaces/IOGREProposalFactory.sol"; import "./interfaces/IOGREProposal.sol"; import "./abstract/ActionHopper.sol"; @@ -111,8 +111,15 @@ contract OGREDAO is AccessControl, ActionHopper, ERC721Receivable { * @param admin_ address that will be assigned the DAO_ADMIN role * @param delay_ amount of time that must elapse before a loaded action can be executed (in seconds) */ - constructor(string memory daoName_, string memory daoMetadata_, address nftAddress_, - address proposalFactoryAddress_, uint256 proposalCost_, address admin_, uint256 delay_) ActionHopper(delay_) { + constructor( + string memory daoName_, + string memory daoMetadata_, + address nftAddress_, + address proposalFactoryAddress_, + uint256 proposalCost_, + address admin_, + uint256 delay_ + ) ActionHopper(delay_) { require(nftAddress_ != address(0x0), "nft address cannot be zero address"); require(admin_ != address(0x0), "admin role cannot be zero address"); @@ -122,8 +129,8 @@ contract OGREDAO is AccessControl, ActionHopper, ERC721Receivable { proposalFactoryAddress = proposalFactoryAddress_; proposalCost = proposalCost_; - _setupRole(Constants.DAO_ADMIN, admin_); - _setupRole(Constants.DAO_INVITE, admin_); + _grantRole(Constants.DAO_ADMIN, admin_); + _grantRole(Constants.DAO_INVITE, admin_); _setRoleAdmin(Constants.DAO_INVITE, Constants.DAO_ADMIN); emit DAOCreated(nftAddress_, proposalFactoryAddress_, admin_); diff --git a/contracts/OGREMarket.sol b/src/OGREMarket.sol similarity index 95% rename from contracts/OGREMarket.sol rename to src/OGREMarket.sol index a370473..0c7d006 100644 --- a/contracts/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/access/AccessControl.sol"; -import "../node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/access/AccessControl.sol"; +import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; @@ -41,7 +41,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { constructor(address daoAddress_, address admin_, uint256 orderFee_, address feeRecipient_) { daoAddress = daoAddress_; - _setupRole(Constants.MARKET_ADMIN, admin_); + _grantRole(Constants.MARKET_ADMIN, admin_); emit MarketCreated(daoAddress); setOrderFee(orderFee_); setFeeRecipient(feeRecipient_); diff --git a/contracts/OGREProposal.sol b/src/OGREProposal.sol similarity index 97% rename from contracts/OGREProposal.sol rename to src/OGREProposal.sol index 908d1e3..08a8c5d 100644 --- a/contracts/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; import "./interfaces/IOGREDAO.sol"; import {Enums} from "./libraries/Enums.sol"; import {Structs} from "./libraries/Structs.sol"; @@ -70,15 +70,12 @@ contract OGREProposal is Ownable { error InvalidStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); - constructor(string memory proposalTitle_, address daoAddress_, address owner_) { + constructor(string memory proposalTitle_, address daoAddress_, address owner_) Ownable(owner_) { // require(daoAddress_ != address(0x), "daoAddress cannot be zero address"); proposalTitle = proposalTitle_; daoAddress = daoAddress_; - //transfer ownership to initial owner - transferOwnership(owner_); - emit StatusUpdated("Proposed"); } diff --git a/contracts/OGRETokenizedMarket.sol b/src/OGRETokenizedMarket.sol similarity index 97% rename from contracts/OGRETokenizedMarket.sol rename to src/OGRETokenizedMarket.sol index d95b1cc..cc06999 100644 --- a/contracts/OGRETokenizedMarket.sol +++ b/src/OGRETokenizedMarket.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -// import "../node_modules/@openzeppelin/contracts/access/AccessControl.sol"; -// import "../node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol"; -// import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +// import "@openzeppelin/contracts/access/AccessControl.sol"; +// import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; +// import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; // import "./abstract/ERC721Receivable.sol"; import "./interfaces/IOGRE721Factory.sol"; import "./interfaces/IOGRE721.sol"; @@ -21,7 +21,7 @@ import "./interfaces/IOGRETreasury.sol"; // * LISTING token could be held in a burn-unaware contract and replaced with the item from the order request upon fulfillment, causing unintended effects. // * -import "hardhat/console.sol"; +import "forge-std/console.sol"; /** * @title Tokenized Market Contract diff --git a/contracts/OGRETokenizedTreasury.sol b/src/OGRETokenizedTreasury.sol similarity index 91% rename from contracts/OGRETokenizedTreasury.sol rename to src/OGRETokenizedTreasury.sol index 6d3edb2..af31c31 100644 --- a/contracts/OGRETokenizedTreasury.sol +++ b/src/OGRETokenizedTreasury.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; -import "../node_modules/@openzeppelin/contracts/access/AccessControl.sol"; -// import "../node_modules/@openzeppelin/contracts/security/Pausable.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "@openzeppelin/contracts/access/AccessControl.sol"; +// import "@openzeppelin/contracts/security/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; // import "./abstract/NativeReceivable.sol"; import "./interfaces/IOGRE721Factory.sol"; import "./interfaces/IOGRE721.sol"; @@ -53,8 +53,8 @@ contract OGRETokenizedTreasury is AccessControl { //produce deposit token contract via factory depositTokenContractAddress = factory.produceOGRE721("OGRETokenizedTreasury Deposit Tokens", "DEPOSIT", address(this)); - _setupRole(TREASURY_OWNER, msg.sender); - _setupRole(ALLOWED_CONTRACT, depositTokenContractAddress); + _grantRole(TREASURY_OWNER, msg.sender); + _grantRole(ALLOWED_CONTRACT, depositTokenContractAddress); _setRoleAdmin(ALLOWED_CONTRACT, TREASURY_OWNER); } diff --git a/contracts/OGRETreasury.sol b/src/OGRETreasury.sol similarity index 75% rename from contracts/OGRETreasury.sol rename to src/OGRETreasury.sol index 3ab3b99..d962aab 100644 --- a/contracts/OGRETreasury.sol +++ b/src/OGRETreasury.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; -import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; -import "../node_modules/@openzeppelin/contracts/security/Pausable.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -// import "../node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +// import "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol"; // import "./abstract/NativeReceivable.sol"; /** @@ -15,7 +15,7 @@ contract OGRETreasury is Ownable, Pausable { address public immutable daoAddress; - constructor(address daoAddress_) { + constructor(address daoAddress_) Ownable(daoAddress_) { daoAddress = daoAddress_; } diff --git a/contracts/abstract/ActionHopper.sol b/src/abstract/ActionHopper.sol similarity index 99% rename from contracts/abstract/ActionHopper.sol rename to src/abstract/ActionHopper.sol index cf883c4..3d23800 100644 --- a/contracts/abstract/ActionHopper.sol +++ b/src/abstract/ActionHopper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @title Action Hopper Contract diff --git a/contracts/abstract/ERC721Receivable.sol b/src/abstract/ERC721Receivable.sol similarity index 90% rename from contracts/abstract/ERC721Receivable.sol rename to src/abstract/ERC721Receivable.sol index b04f773..8c441f2 100644 --- a/contracts/abstract/ERC721Receivable.sol +++ b/src/abstract/ERC721Receivable.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; -import "../../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; //TODO: remove allowlist logic? split into sendlist and receivelist? //TODO: remove inventory tracking logic? could call balanceOf() instead? diff --git a/contracts/abstract/OGREFactory.sol b/src/abstract/OGREFactory.sol similarity index 96% rename from contracts/abstract/OGREFactory.sol rename to src/abstract/OGREFactory.sol index 3ecdfa5..32873d1 100644 --- a/contracts/abstract/OGREFactory.sol +++ b/src/abstract/OGREFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @title OGRE Factory Abstract Contract diff --git a/contracts/abstract/stub/StubActionHopper.sol b/src/abstract/stub/StubActionHopper.sol similarity index 96% rename from contracts/abstract/stub/StubActionHopper.sol rename to src/abstract/stub/StubActionHopper.sol index 777446d..3e3a838 100644 --- a/contracts/abstract/stub/StubActionHopper.sol +++ b/src/abstract/stub/StubActionHopper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../ActionHopper.sol"; diff --git a/contracts/abstract/stub/StubERC721Receivable.sol b/src/abstract/stub/StubERC721Receivable.sol similarity index 94% rename from contracts/abstract/stub/StubERC721Receivable.sol rename to src/abstract/stub/StubERC721Receivable.sol index b1c4c78..e752d45 100644 --- a/contracts/abstract/stub/StubERC721Receivable.sol +++ b/src/abstract/stub/StubERC721Receivable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../ERC721Receivable.sol"; diff --git a/contracts/abstract/stub/StubOGREFactory.sol b/src/abstract/stub/StubOGREFactory.sol similarity index 93% rename from contracts/abstract/stub/StubOGREFactory.sol rename to src/abstract/stub/StubOGREFactory.sol index a260a09..d431be2 100644 --- a/contracts/abstract/stub/StubOGREFactory.sol +++ b/src/abstract/stub/StubOGREFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../OGREFactory.sol"; diff --git a/contracts/factories/OGRE20Factory.sol b/src/factories/OGRE20Factory.sol similarity index 95% rename from contracts/factories/OGRE20Factory.sol rename to src/factories/OGRE20Factory.sol index e5858b9..b31b51e 100644 --- a/contracts/factories/OGRE20Factory.sol +++ b/src/factories/OGRE20Factory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGRE20Factory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/factories/OGRE721Factory.sol b/src/factories/OGRE721Factory.sol similarity index 95% rename from contracts/factories/OGRE721Factory.sol rename to src/factories/OGRE721Factory.sol index 1accfe9..0933521 100644 --- a/contracts/factories/OGRE721Factory.sol +++ b/src/factories/OGRE721Factory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGRE721Factory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/factories/OGREDAOFactory.sol b/src/factories/OGREDAOFactory.sol similarity index 96% rename from contracts/factories/OGREDAOFactory.sol rename to src/factories/OGREDAOFactory.sol index 9aab78e..3e0833d 100644 --- a/contracts/factories/OGREDAOFactory.sol +++ b/src/factories/OGREDAOFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGREDAOFactory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/factories/OGREMarketFactory.sol b/src/factories/OGREMarketFactory.sol similarity index 96% rename from contracts/factories/OGREMarketFactory.sol rename to src/factories/OGREMarketFactory.sol index 6871b15..de23c77 100644 --- a/contracts/factories/OGREMarketFactory.sol +++ b/src/factories/OGREMarketFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGREMarketFactory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/factories/OGREProposalFactory.sol b/src/factories/OGREProposalFactory.sol similarity index 96% rename from contracts/factories/OGREProposalFactory.sol rename to src/factories/OGREProposalFactory.sol index ae7aeea..c032c4a 100644 --- a/contracts/factories/OGREProposalFactory.sol +++ b/src/factories/OGREProposalFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGREProposalFactory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/factories/OGRETreasuryFactory.sol b/src/factories/OGRETreasuryFactory.sol similarity index 96% rename from contracts/factories/OGRETreasuryFactory.sol rename to src/factories/OGRETreasuryFactory.sol index d8c0aaa..3f75630 100644 --- a/contracts/factories/OGRETreasuryFactory.sol +++ b/src/factories/OGRETreasuryFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import "../interfaces/IOGRETreasuryFactory.sol"; import "../abstract/OGREFactory.sol"; diff --git a/contracts/interfaces/IOGRE20Factory.sol b/src/interfaces/IOGRE20Factory.sol similarity index 90% rename from contracts/interfaces/IOGRE20Factory.sol rename to src/interfaces/IOGRE20Factory.sol index 5346c9f..7923041 100644 --- a/contracts/interfaces/IOGRE20Factory.sol +++ b/src/interfaces/IOGRE20Factory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE 20 Factory interface definition diff --git a/contracts/interfaces/IOGRE721.sol b/src/interfaces/IOGRE721.sol similarity index 89% rename from contracts/interfaces/IOGRE721.sol rename to src/interfaces/IOGRE721.sol index acd89dc..05d17c1 100644 --- a/contracts/interfaces/IOGRE721.sol +++ b/src/interfaces/IOGRE721.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE 721 interface definition diff --git a/contracts/interfaces/IOGRE721Factory.sol b/src/interfaces/IOGRE721Factory.sol similarity index 90% rename from contracts/interfaces/IOGRE721Factory.sol rename to src/interfaces/IOGRE721Factory.sol index 241ee24..5b8b082 100644 --- a/contracts/interfaces/IOGRE721Factory.sol +++ b/src/interfaces/IOGRE721Factory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE NFT Factory interface definition diff --git a/contracts/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol similarity index 98% rename from contracts/interfaces/IOGREDAO.sol rename to src/interfaces/IOGREDAO.sol index 2f1249c..7ebf87d 100644 --- a/contracts/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE DAO interface definition diff --git a/contracts/interfaces/IOGREDAOFactory.sol b/src/interfaces/IOGREDAOFactory.sol similarity index 92% rename from contracts/interfaces/IOGREDAOFactory.sol rename to src/interfaces/IOGREDAOFactory.sol index 19ea5a2..e099afa 100644 --- a/contracts/interfaces/IOGREDAOFactory.sol +++ b/src/interfaces/IOGREDAOFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE DAO Factory interface definition diff --git a/contracts/interfaces/IOGREMarket.sol b/src/interfaces/IOGREMarket.sol similarity index 96% rename from contracts/interfaces/IOGREMarket.sol rename to src/interfaces/IOGREMarket.sol index ab59da1..b68110d 100644 --- a/contracts/interfaces/IOGREMarket.sol +++ b/src/interfaces/IOGREMarket.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import {Enums} from "../libraries/Enums.sol"; diff --git a/contracts/interfaces/IOGREMarketFactory.sol b/src/interfaces/IOGREMarketFactory.sol similarity index 91% rename from contracts/interfaces/IOGREMarketFactory.sol rename to src/interfaces/IOGREMarketFactory.sol index 1524266..61f3fd0 100644 --- a/contracts/interfaces/IOGREMarketFactory.sol +++ b/src/interfaces/IOGREMarketFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGREMarketFactory interface definition diff --git a/contracts/interfaces/IOGREProposal.sol b/src/interfaces/IOGREProposal.sol similarity index 97% rename from contracts/interfaces/IOGREProposal.sol rename to src/interfaces/IOGREProposal.sol index ef23a8e..cfa2d4f 100644 --- a/contracts/interfaces/IOGREProposal.sol +++ b/src/interfaces/IOGREProposal.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import {Enums} from "../libraries/Enums.sol"; import {Structs} from "../libraries/Structs.sol"; diff --git a/contracts/interfaces/IOGREProposalFactory.sol b/src/interfaces/IOGREProposalFactory.sol similarity index 91% rename from contracts/interfaces/IOGREProposalFactory.sol rename to src/interfaces/IOGREProposalFactory.sol index b54d5ba..d8a7fb9 100644 --- a/contracts/interfaces/IOGREProposalFactory.sol +++ b/src/interfaces/IOGREProposalFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE Proposal Factory interface definition diff --git a/contracts/interfaces/IOGRETreasury.sol b/src/interfaces/IOGRETreasury.sol similarity index 100% rename from contracts/interfaces/IOGRETreasury.sol rename to src/interfaces/IOGRETreasury.sol diff --git a/contracts/interfaces/IOGRETreasuryFactory.sol b/src/interfaces/IOGRETreasuryFactory.sol similarity index 89% rename from contracts/interfaces/IOGRETreasuryFactory.sol rename to src/interfaces/IOGRETreasuryFactory.sol index ea9007e..85a2226 100644 --- a/contracts/interfaces/IOGRETreasuryFactory.sol +++ b/src/interfaces/IOGRETreasuryFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; /** * @notice OGRE Treasury Factory interface definition diff --git a/contracts/libraries/Constants.sol b/src/libraries/Constants.sol similarity index 97% rename from contracts/libraries/Constants.sol rename to src/libraries/Constants.sol index 91db4f9..1059b18 100644 --- a/contracts/libraries/Constants.sol +++ b/src/libraries/Constants.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; library Constants { diff --git a/contracts/libraries/Enums.sol b/src/libraries/Enums.sol similarity index 97% rename from contracts/libraries/Enums.sol rename to src/libraries/Enums.sol index 9aa0c43..cbd9780 100644 --- a/contracts/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; library Enums { diff --git a/contracts/libraries/Structs.sol b/src/libraries/Structs.sol similarity index 98% rename from contracts/libraries/Structs.sol rename to src/libraries/Structs.sol index d58bc44..24419fb 100644 --- a/contracts/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; +pragma solidity ^0.8.17; import {Enums} from "./Enums.sol"; diff --git a/test/OGRETest.t.sol b/test/OGRETest.t.sol new file mode 100644 index 0000000..abd4782 --- /dev/null +++ b/test/OGRETest.t.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.17; + +import "forge-std/Test.sol"; +import "../src/OGREDAO.sol"; + +contract OGRETest is Test { + OGREDAO public dao; + + function setUp() public { + dao = new OGREDAO("TestName", "TestMeta", address(this), address(this), 1, address(this), 500); + } + + function testExample() public { + assertTrue(true); + } +} \ No newline at end of file From 8f54ae65a3c4e7183a767ab133d46bc2afda5f2e Mon Sep 17 00:00:00 2001 From: Craig Date: Thu, 17 Apr 2025 21:08:44 -0400 Subject: [PATCH 02/20] move old tests --- .gitignore | 3 ++- lib/openzeppelin-contracts | 1 + {test => todo/tests/test}/.gitkeep | 0 {test => todo/tests/test}/OGRE721.test.js | 0 {test => todo/tests/test}/OGREDAO.test.js | 0 {test => todo/tests/test}/OGREMarket.test.js | 0 {test => todo/tests/test}/OGREProposal.test.js | 0 {test => todo/tests/test}/OGRETest.t.sol | 0 {test => todo/tests/test}/OGRETokenizedMarket.test.js | 0 {test => todo/tests/test}/abstract/ActionHopper.test.js | 0 {test => todo/tests/test}/abstract/ERC721Receivable.test.js | 0 {test => todo/tests/test}/abstract/OGREFactory.test.js | 0 {test => todo/tests/test}/factories/OGREDAOFactory.test.js | 0 {test => todo/tests/test}/factories/OGRENFTFactory.test.js | 0 .../tests/test}/factories/OGREProposalFactory.test.js | 0 .../tests/test}/integration/SendNFTByProposal.test.js | 0 16 files changed, 3 insertions(+), 1 deletion(-) create mode 160000 lib/openzeppelin-contracts rename {test => todo/tests/test}/.gitkeep (100%) rename {test => todo/tests/test}/OGRE721.test.js (100%) rename {test => todo/tests/test}/OGREDAO.test.js (100%) rename {test => todo/tests/test}/OGREMarket.test.js (100%) rename {test => todo/tests/test}/OGREProposal.test.js (100%) rename {test => todo/tests/test}/OGRETest.t.sol (100%) rename {test => todo/tests/test}/OGRETokenizedMarket.test.js (100%) rename {test => todo/tests/test}/abstract/ActionHopper.test.js (100%) rename {test => todo/tests/test}/abstract/ERC721Receivable.test.js (100%) rename {test => todo/tests/test}/abstract/OGREFactory.test.js (100%) rename {test => todo/tests/test}/factories/OGREDAOFactory.test.js (100%) rename {test => todo/tests/test}/factories/OGRENFTFactory.test.js (100%) rename {test => todo/tests/test}/factories/OGREProposalFactory.test.js (100%) rename {test => todo/tests/test}/integration/SendNFTByProposal.test.js (100%) diff --git a/.gitignore b/.gitignore index 018c9d7..827e1f8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ node_modules/ build/ artifacts/ cache/ -flattened/ \ No newline at end of file +flattened/ +out/ \ No newline at end of file diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts new file mode 160000 index 0000000..21c8312 --- /dev/null +++ b/lib/openzeppelin-contracts @@ -0,0 +1 @@ +Subproject commit 21c8312b022f495ebe3621d5daeed20552b43ff9 diff --git a/test/.gitkeep b/todo/tests/test/.gitkeep similarity index 100% rename from test/.gitkeep rename to todo/tests/test/.gitkeep diff --git a/test/OGRE721.test.js b/todo/tests/test/OGRE721.test.js similarity index 100% rename from test/OGRE721.test.js rename to todo/tests/test/OGRE721.test.js diff --git a/test/OGREDAO.test.js b/todo/tests/test/OGREDAO.test.js similarity index 100% rename from test/OGREDAO.test.js rename to todo/tests/test/OGREDAO.test.js diff --git a/test/OGREMarket.test.js b/todo/tests/test/OGREMarket.test.js similarity index 100% rename from test/OGREMarket.test.js rename to todo/tests/test/OGREMarket.test.js diff --git a/test/OGREProposal.test.js b/todo/tests/test/OGREProposal.test.js similarity index 100% rename from test/OGREProposal.test.js rename to todo/tests/test/OGREProposal.test.js diff --git a/test/OGRETest.t.sol b/todo/tests/test/OGRETest.t.sol similarity index 100% rename from test/OGRETest.t.sol rename to todo/tests/test/OGRETest.t.sol diff --git a/test/OGRETokenizedMarket.test.js b/todo/tests/test/OGRETokenizedMarket.test.js similarity index 100% rename from test/OGRETokenizedMarket.test.js rename to todo/tests/test/OGRETokenizedMarket.test.js diff --git a/test/abstract/ActionHopper.test.js b/todo/tests/test/abstract/ActionHopper.test.js similarity index 100% rename from test/abstract/ActionHopper.test.js rename to todo/tests/test/abstract/ActionHopper.test.js diff --git a/test/abstract/ERC721Receivable.test.js b/todo/tests/test/abstract/ERC721Receivable.test.js similarity index 100% rename from test/abstract/ERC721Receivable.test.js rename to todo/tests/test/abstract/ERC721Receivable.test.js diff --git a/test/abstract/OGREFactory.test.js b/todo/tests/test/abstract/OGREFactory.test.js similarity index 100% rename from test/abstract/OGREFactory.test.js rename to todo/tests/test/abstract/OGREFactory.test.js diff --git a/test/factories/OGREDAOFactory.test.js b/todo/tests/test/factories/OGREDAOFactory.test.js similarity index 100% rename from test/factories/OGREDAOFactory.test.js rename to todo/tests/test/factories/OGREDAOFactory.test.js diff --git a/test/factories/OGRENFTFactory.test.js b/todo/tests/test/factories/OGRENFTFactory.test.js similarity index 100% rename from test/factories/OGRENFTFactory.test.js rename to todo/tests/test/factories/OGRENFTFactory.test.js diff --git a/test/factories/OGREProposalFactory.test.js b/todo/tests/test/factories/OGREProposalFactory.test.js similarity index 100% rename from test/factories/OGREProposalFactory.test.js rename to todo/tests/test/factories/OGREProposalFactory.test.js diff --git a/test/integration/SendNFTByProposal.test.js b/todo/tests/test/integration/SendNFTByProposal.test.js similarity index 100% rename from test/integration/SendNFTByProposal.test.js rename to todo/tests/test/integration/SendNFTByProposal.test.js From f79f9d281f6d3d70e0bd33fcca8a997b781ce49d Mon Sep 17 00:00:00 2001 From: Craig Date: Thu, 17 Apr 2025 21:09:02 -0400 Subject: [PATCH 03/20] forge install: solady v0.1.14 --- .gitmodules | 3 +++ lib/solady | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/solady diff --git a/.gitmodules b/.gitmodules index 140ea9e..d7a4ab4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/openzeppelin-contracts"] path = lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/solady"] + path = lib/solady + url = https://github.com/vectorized/solady diff --git a/lib/solady b/lib/solady new file mode 160000 index 0000000..dcdfab8 --- /dev/null +++ b/lib/solady @@ -0,0 +1 @@ +Subproject commit dcdfab80f4e6cb9ac35c91610b2a2ec42689ec79 From 8f2a7164922709361025e7d2c627959cfed94332 Mon Sep 17 00:00:00 2001 From: Craig Date: Thu, 17 Apr 2025 21:49:49 -0400 Subject: [PATCH 04/20] reorg --- src/abstract/OGREFactory.sol | 11 ++++------- src/abstract/stub/StubOGREFactory.sol | 2 +- src/{OGRE20.sol => samples/SampleERC20.sol} | 2 +- src/{OGRE721.sol => samples/SampleERC721.sol} | 2 +- {src => todo}/abstract/ERC721Receivable.sol | 0 .../stub => todo/abstract}/StubERC721Receivable.sol | 0 {src => todo}/factories/OGRE20Factory.sol | 2 +- {src => todo}/factories/OGRE721Factory.sol | 0 8 files changed, 8 insertions(+), 11 deletions(-) rename src/{OGRE20.sol => samples/SampleERC20.sol} (93%) rename src/{OGRE721.sol => samples/SampleERC721.sol} (94%) rename {src => todo}/abstract/ERC721Receivable.sol (100%) rename {src/abstract/stub => todo/abstract}/StubERC721Receivable.sol (100%) rename {src => todo}/factories/OGRE20Factory.sol (93%) rename {src => todo}/factories/OGRE721Factory.sol (100%) diff --git a/src/abstract/OGREFactory.sol b/src/abstract/OGREFactory.sol index 32873d1..0fd3c5d 100644 --- a/src/abstract/OGREFactory.sol +++ b/src/abstract/OGREFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; /** * @title OGRE Factory Abstract Contract @@ -7,16 +7,13 @@ pragma solidity ^0.8.17; abstract contract OGREFactory { uint256 public productionCount; - // mapping(address => uint256) public contractsProduced; - // mapping(uint256 => address) public contractsProducedById; /** - * @dev logs a successful contract production from factory + * @dev Logs a successful contract production. * @param contractAddress address of newly produced contract - * @param factoryAddress address of factory that produced contract - * @param producer address that initiated production + * @param producedBy address that initiated production */ - event ContractProduced(address contractAddress, address factoryAddress, address producer); + event ContractProduced(address contractAddress, address producedBy); constructor() {} diff --git a/src/abstract/stub/StubOGREFactory.sol b/src/abstract/stub/StubOGREFactory.sol index d431be2..4ec25d1 100644 --- a/src/abstract/stub/StubOGREFactory.sol +++ b/src/abstract/stub/StubOGREFactory.sol @@ -11,7 +11,7 @@ contract StubOGREFactory is OGREFactory { constructor() {} function produceContract(address contractAddress, address producer) public { - emit ContractProduced(contractAddress, address(this), producer); + emit ContractProduced(contractAddress, producer); } } \ No newline at end of file diff --git a/src/OGRE20.sol b/src/samples/SampleERC20.sol similarity index 93% rename from src/OGRE20.sol rename to src/samples/SampleERC20.sol index 867191e..167dd32 100644 --- a/src/OGRE20.sol +++ b/src/samples/SampleERC20.sol @@ -8,7 +8,7 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; /** * @title Open Governance Referendum Engine ERC20 Contract */ -contract OGRE20 is Ownable, Pausable, ERC20 { +contract SampleERC20 is Ownable, Pausable, ERC20 { constructor(string memory name_, string memory symbol_, address owner_) Ownable(owner_) ERC20(name_, symbol_) {} diff --git a/src/OGRE721.sol b/src/samples/SampleERC721.sol similarity index 94% rename from src/OGRE721.sol rename to src/samples/SampleERC721.sol index 89506df..1e5c3d2 100644 --- a/src/OGRE721.sol +++ b/src/samples/SampleERC721.sol @@ -11,7 +11,7 @@ import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; /** * @title Open Governance Referendum Engine NFT Contract */ -contract OGRE721 is Ownable, Pausable, ERC721 { +contract SampleERC721 is Ownable, Pausable, ERC721 { constructor(string memory name_, string memory symbol_, address owner_) Ownable(owner_) ERC721(name_, symbol_) {} diff --git a/src/abstract/ERC721Receivable.sol b/todo/abstract/ERC721Receivable.sol similarity index 100% rename from src/abstract/ERC721Receivable.sol rename to todo/abstract/ERC721Receivable.sol diff --git a/src/abstract/stub/StubERC721Receivable.sol b/todo/abstract/StubERC721Receivable.sol similarity index 100% rename from src/abstract/stub/StubERC721Receivable.sol rename to todo/abstract/StubERC721Receivable.sol diff --git a/src/factories/OGRE20Factory.sol b/todo/factories/OGRE20Factory.sol similarity index 93% rename from src/factories/OGRE20Factory.sol rename to todo/factories/OGRE20Factory.sol index b31b51e..9d57aea 100644 --- a/src/factories/OGRE20Factory.sol +++ b/todo/factories/OGRE20Factory.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.17; import "../interfaces/IOGRE20Factory.sol"; import "../abstract/OGREFactory.sol"; -import "../OGRE20.sol"; +import "../samples/SampleERC20.sol"; contract OGRE20Factory is IOGRE20Factory, OGREFactory { diff --git a/src/factories/OGRE721Factory.sol b/todo/factories/OGRE721Factory.sol similarity index 100% rename from src/factories/OGRE721Factory.sol rename to todo/factories/OGRE721Factory.sol From 19c6f6fc69a306d8162fbe6cd714b57ad9c4406a Mon Sep 17 00:00:00 2001 From: Craig Date: Thu, 17 Apr 2025 22:48:34 -0400 Subject: [PATCH 05/20] clean up --- out/Constants.sol/Constants.json | 2 +- out/Enums.sol/Enums.json | 2 +- out/IOGREDAO.sol/IOGREDAO.json | 2 +- out/IOGREMarket.sol/IOGREMarket.json | 2 +- out/IOGREProposal.sol/IOGREProposal.json | 2 +- .../IOGREProposalFactory.json | 2 +- out/IOGRETreasury.sol/IOGRETreasury.json | 2 +- out/OGREDAO.sol/OGREDAO.json | 2 +- out/OGREDAOFactory.sol/OGREDAOFactory.json | 2 +- out/OGREFactory.sol/OGREFactory.json | 2 +- out/OGREMarket.sol/OGREMarket.json | 2 +- .../OGREMarketFactory.json | 2 +- out/OGREProposal.sol/OGREProposal.json | 2 +- .../OGREProposalFactory.json | 2 +- out/OGRETreasury.sol/OGRETreasury.json | 2 +- .../OGRETreasuryFactory.json | 2 +- out/Structs.sol/Structs.json | 2 +- out/StubOGREFactory.sol/StubOGREFactory.json | 2 +- src/OGREDAO.sol | 4 ++-- src/OGREMarket.sol | 2 +- src/OGREProposal.sol | 3 ++- src/OGRETreasury.sol | 6 ++--- src/abstract/OGREFactory.sol | 2 -- src/abstract/stub/StubOGREFactory.sol | 2 +- src/factories/OGREDAOFactory.sol | 23 ++++++++++--------- src/factories/OGREMarketFactory.sol | 20 ++++++++-------- src/factories/OGREProposalFactory.sol | 13 +++-------- src/factories/OGRETreasuryFactory.sol | 13 +++-------- src/interfaces/IOGRE20Factory.sol | 9 -------- src/interfaces/IOGRE721.sol | 10 -------- src/interfaces/IOGRE721Factory.sol | 9 -------- src/interfaces/IOGREDAO.sol | 2 +- src/interfaces/IOGREDAOFactory.sol | 9 -------- src/interfaces/IOGREMarket.sol | 2 +- src/interfaces/IOGREMarketFactory.sol | 9 -------- src/interfaces/IOGREProposal.sol | 2 +- src/interfaces/IOGREProposalFactory.sol | 2 +- src/interfaces/IOGRETreasury.sol | 2 +- src/interfaces/IOGRETreasuryFactory.sol | 9 -------- src/libraries/Constants.sol | 2 +- src/libraries/Enums.sol | 10 ++++---- src/libraries/Structs.sol | 2 +- {src => todo}/OGREBridge.sol | 0 {src => todo}/OGRETokenizedMarket.sol | 0 {src => todo}/OGRETokenizedTreasury.sol | 0 45 files changed, 66 insertions(+), 137 deletions(-) delete mode 100644 src/interfaces/IOGRE20Factory.sol delete mode 100644 src/interfaces/IOGRE721.sol delete mode 100644 src/interfaces/IOGRE721Factory.sol delete mode 100644 src/interfaces/IOGREDAOFactory.sol delete mode 100644 src/interfaces/IOGREMarketFactory.sol delete mode 100644 src/interfaces/IOGRETreasuryFactory.sol rename {src => todo}/OGREBridge.sol (100%) rename {src => todo}/OGRETokenizedMarket.sol (100%) rename {src => todo}/OGRETokenizedTreasury.sol (100%) diff --git a/out/Constants.sol/Constants.json b/out/Constants.sol/Constants.json index b5b2ccf..b9fec2b 100644 --- a/out/Constants.sol/Constants.json +++ b/out/Constants.sol/Constants.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DAO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DAO_INVITE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MARKET_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPTIONS_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROPOSAL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101a1610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220ac57617df80e3f958a5418c826cd627751bd0be06897ac41ee9b176695036e6164736f6c63430008140033","sourceMap":"65:846:72:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:846:72;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220ac57617df80e3f958a5418c826cd627751bd0be06897ac41ee9b176695036e6164736f6c63430008140033","sourceMap":"65:846:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;110:58;;146:22;110:58;;;;;168:25:76;;;156:2;141:18;110:58:72;;;;;;;500:66;;540:26;500:66;;601:68;;642:27;601:68;;770;;811:27;770:68;;243:60;;280:23;243:60;;402:64;;441:25;402:64;","linkReferences":{}},"methodIdentifiers":{"DAO_ADMIN()":"468c8a61","DAO_INVITE()":"890e4b49","MARKET_ADMIN()":"a314fb16","OPTIONS_ADMIN()":"5b1402b7","PROPOSAL_ADMIN()":"5e90ca16","TREASURY_ADMIN()":"769ac726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DAO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAO_INVITE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPTIONS_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_INVITE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MARKET_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPTIONS_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSAL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"}},"version":1},"id":72} \ No newline at end of file +{"abi":[{"type":"function","name":"DAO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DAO_INVITE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MARKET_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPTIONS_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROPOSAL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101a1610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220eddf1536cfdabd14a86d436def18856696ead558db3c367a1a349cb15d0fd29964736f6c63430008140033","sourceMap":"65:846:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:846:27;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220eddf1536cfdabd14a86d436def18856696ead558db3c367a1a349cb15d0fd29964736f6c63430008140033","sourceMap":"65:846:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;110:58;;146:22;110:58;;;;;168:25:30;;;156:2;141:18;110:58:27;;;;;;;500:66;;540:26;500:66;;601:68;;642:27;601:68;;770;;811:27;770:68;;243:60;;280:23;243:60;;402:64;;441:25;402:64;","linkReferences":{}},"methodIdentifiers":{"DAO_ADMIN()":"468c8a61","DAO_INVITE()":"890e4b49","MARKET_ADMIN()":"a314fb16","OPTIONS_ADMIN()":"5b1402b7","PROPOSAL_ADMIN()":"5e90ca16","TREASURY_ADMIN()":"769ac726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DAO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAO_INVITE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPTIONS_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_INVITE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MARKET_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPTIONS_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSAL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"}},"version":1},"id":27} \ No newline at end of file diff --git a/out/Enums.sol/Enums.json b/out/Enums.sol/Enums.json index c320122..4b2e299 100644 --- a/out/Enums.sol/Enums.json +++ b/out/Enums.sol/Enums.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b2ac4ce08328a4962a708c88bfc69ecefd9b0040e77e0b2bdf998a578d856bcb64736f6c63430008140033","sourceMap":"65:927:73:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:927:73;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b2ac4ce08328a4962a708c88bfc69ecefd9b0040e77e0b2bdf998a578d856bcb64736f6c63430008140033","sourceMap":"65:927:73:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Enums.sol\":\"Enums\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Enums.sol":"Enums"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"}},"version":1},"id":73} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204f46e860bc6e9566fd887e6f07cc8d22943a0d892bcde32317c5b7713c2199d064736f6c63430008140033","sourceMap":"65:915:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:915:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204f46e860bc6e9566fd887e6f07cc8d22943a0d892bcde32317c5b7713c2199d064736f6c63430008140033","sourceMap":"65:915:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Enums.sol\":\"Enums\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Enums.sol":"Enums"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"}},"version":1},"id":28} \ No newline at end of file diff --git a/out/IOGREDAO.sol/IOGREDAO.json b/out/IOGREDAO.sol/IOGREDAO.json index e384583..9e351ee 100644 --- a/out/IOGREDAO.sol/IOGREDAO.json +++ b/out/IOGREDAO.sol/IOGREDAO.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoMetadata()":"0787e15c","daoName()":"48976936","getMemberStatus(uint256)":"7d0d719b","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAO.sol\":\"IOGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAO.sol":"IOGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoMetadata()":"0787e15c","daoName()":"48976936","getMemberStatus(uint256)":"7d0d719b","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAO.sol\":\"IOGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAO.sol":"IOGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/IOGREMarket.sol/IOGREMarket.json b/out/IOGREMarket.sol/IOGREMarket.json index 622069e..bdfe28e 100644 --- a/out/IOGREMarket.sol/IOGREMarket.json +++ b/out/IOGREMarket.sol/IOGREMarket.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allowedContracts","inputs":[{"name":"contractAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","orderExists(bytes32)":"2cb77e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarket interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarket.sol\":\"IOGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREMarket.sol\":{\"keccak256\":\"0x55dbb995cb3a547ca01e24decf8e5526bcc866cc7f0ac01dc5f7561bc2e0b9a6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3c121eef1370d4ebcb81b20eb950b99cd4a3671f258fcefc1778ae8b885725b\",\"dweb:/ipfs/QmVmZVSzR8akhgUwTXWgTYNFe8MF6TrrrodVZimVDCiFf1\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarket.sol":"IOGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarket.sol":{"keccak256":"0x55dbb995cb3a547ca01e24decf8e5526bcc866cc7f0ac01dc5f7561bc2e0b9a6","urls":["bzz-raw://c3c121eef1370d4ebcb81b20eb950b99cd4a3671f258fcefc1778ae8b885725b","dweb:/ipfs/QmVmZVSzR8akhgUwTXWgTYNFe8MF6TrrrodVZimVDCiFf1"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"}},"version":1},"id":66} \ No newline at end of file +{"abi":[{"type":"function","name":"allowedContracts","inputs":[{"name":"contractAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","orderExists(bytes32)":"2cb77e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarket interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarket.sol\":\"IOGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREMarket.sol\":{\"keccak256\":\"0x4308fb2631573560ef562b501099c48bc5f9bccaf02d9007dbec33307344f413\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e8eeef6b0e9f5ad3cf5139ca60d320ec631c177673986205c2193ba3cf533067\",\"dweb:/ipfs/QmeavrobqiYnk2Urs6sg7xfuG1CXpX3kMGKm6Ps5k7a8Hh\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarket.sol":"IOGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarket.sol":{"keccak256":"0x4308fb2631573560ef562b501099c48bc5f9bccaf02d9007dbec33307344f413","urls":["bzz-raw://e8eeef6b0e9f5ad3cf5139ca60d320ec631c177673986205c2193ba3cf533067","dweb:/ipfs/QmeavrobqiYnk2Urs6sg7xfuG1CXpX3kMGKm6Ps5k7a8Hh"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/IOGREProposal.sol/IOGREProposal.json b/out/IOGREProposal.sol/IOGREProposal.json index b47c8f1..038a27b 100644 --- a/out/IOGREProposal.sol/IOGREProposal.json +++ b/out/IOGREProposal.sol/IOGREProposal.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteTotals","inputs":[{"name":"vote","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","proposalTitle()":"e5045752","setActionReady(uint256,uint256)":"280b0c87","startTime()":"78e97925","status()":"200d2ed2","updateStatus(uint8)":"0b3af7f9","voteTotals(uint256)":"814a1d8e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE proposal interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposal.sol\":\"IOGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[{"internalType":"uint256","name":"vote","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposal.sol":"IOGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteTotals","inputs":[{"name":"vote","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","proposalTitle()":"e5045752","setActionReady(uint256,uint256)":"280b0c87","startTime()":"78e97925","status()":"200d2ed2","updateStatus(uint8)":"0b3af7f9","voteTotals(uint256)":"814a1d8e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE proposal interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposal.sol\":\"IOGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[{"internalType":"uint256","name":"vote","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposal.sol":"IOGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/IOGREProposalFactory.sol/IOGREProposalFactory.json b/out/IOGREProposalFactory.sol/IOGREProposalFactory.json index 11c89e7..c97f2e2 100644 --- a/out/IOGREProposalFactory.sol/IOGREProposalFactory.json +++ b/out/IOGREProposalFactory.sol/IOGREProposalFactory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Proposal Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposalFactory.sol\":\"IOGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposalFactory.sol":"IOGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"}},"version":1},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Proposal Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposalFactory.sol\":\"IOGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposalFactory.sol":"IOGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/IOGRETreasury.sol/IOGRETreasury.json b/out/IOGRETreasury.sol/IOGRETreasury.json index f920d6f..20383e2 100644 --- a/out/IOGRETreasury.sol/IOGRETreasury.json +++ b/out/IOGRETreasury.sol/IOGRETreasury.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoAddress()":"2131c68c","sendERC721(address,address,uint256)":"b72ac8ea"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasury.sol\":\"IOGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4\",\"dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasury.sol":"IOGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasury.sol":{"keccak256":"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104","urls":["bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4","dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C"],"license":"UNLICENSED"}},"version":1},"id":70} \ No newline at end of file +{"abi":[{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoAddress()":"2131c68c","sendERC721(address,address,uint256)":"b72ac8ea"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasury.sol\":\"IOGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0x8c1d278c81d054bf6ef5c60661e7f41f2624fbe7233429fe2ee518ffd1b1541d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://84c863bd27edd0e1658e368f4cc192b47da3dfebcee1503e8198a32afd4fff8a\",\"dweb:/ipfs/Qmdnp2BG3VzsTE8Kb7fp5HZj5D5vWFs83HrhtEa3i6oS15\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasury.sol":"IOGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasury.sol":{"keccak256":"0x8c1d278c81d054bf6ef5c60661e7f41f2624fbe7233429fe2ee518ffd1b1541d","urls":["bzz-raw://84c863bd27edd0e1658e368f4cc192b47da3dfebcee1503e8198a32afd4fff8a","dweb:/ipfs/Qmdnp2BG3VzsTE8Kb7fp5HZj5D5vWFs83HrhtEa3i6oS15"],"license":"UNLICENSED"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/OGREDAO.sol/OGREDAO.json b/out/OGREDAO.sol/OGREDAO.json index 0eaa3ea..ac332ab 100644 --- a/out/OGREDAO.sol/OGREDAO.json +++ b/out/OGREDAO.sol/OGREDAO.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoName_","type":"string","internalType":"string"},{"name":"daoMetadata_","type":"string","internalType":"string"},{"name":"nftAddress_","type":"address","internalType":"address"},{"name":"proposalFactoryAddress_","type":"address","internalType":"address"},{"name":"proposalCost_","type":"uint256","internalType":"uint256"},{"name":"admin_","type":"address","internalType":"address"},{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"draftProposal","inputs":[{"name":"proposalTitle","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"evaluateProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.MemberStatus"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inviteMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"proposalCost","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DAOCreated","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposalFactoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"admin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberInvited","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposal","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalEvaluated","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposal","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a","sourceMap":"796:13017:43:-:0;;;5291:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:49;:14;;;-1:-1:-1;;;;;5571:27:43;::::1;5563:74;;;::::0;-1:-1:-1;;;5563:74:43;;2323:2:76;5563:74:43::1;::::0;::::1;2305:21:76::0;2362:2;2342:18;;;2335:30;2401:34;2381:18;;;2374:62;-1:-1:-1;;;2452:18:76;;;2445:32;2494:19;;5563:74:43::1;;;;;;;;;-1:-1:-1::0;;;;;5655:22:43;::::1;5647:68;;;::::0;-1:-1:-1;;;5647:68:43;;2726:2:76;5647:68:43::1;::::0;::::1;2708:21:76::0;2765:2;2745:18;;;2738:30;2804:34;2784:18;;;2777:62;-1:-1:-1;;;2855:18:76;;;2848:31;2896:19;;5647:68:43::1;2524:397:76::0;5647:68:43::1;5726:7;:18;5736:8:::0;5726:7;:18:::1;:::i;:::-;-1:-1:-1::0;5754:11:43::1;:26;5768:12:::0;5754:11;:26:::1;:::i;:::-;-1:-1:-1::0;;;;;;5790:24:43;;::::1;;::::0;5824:48;::::1;;::::0;5882:12:::1;:28:::0;;;5921:39:::1;-1:-1:-1::0;;;;;;;;;;;5953:6:43;5921:10:::1;:39::i;:::-;-1:-1:-1::0;5970:40:43::1;-1:-1:-1::0;;;;;;;;;;;6003:6:43;5970:10:::1;:40::i;:::-;-1:-1:-1::0;6020:56:43::1;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;6020:13:43::1;:56::i;:::-;6092;::::0;;-1:-1:-1;;;;;5773:15:76;;;5755:34;;5825:15;;;5820:2;5805:18;;5798:43;5877:15;;5857:18;;;5850:43;6092:56:43;;::::1;::::0;;;;5705:2:76;6092:56:43;;::::1;5291:864:::0;;;;;;;796:13017;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:177::-;1070:13;;-1:-1:-1;;;;;1112:31:76;;1102:42;;1092:70;;1158:1;1155;1148:12;1092:70;991:177;;;:::o;1173:943::-;1317:6;1325;1333;1341;1349;1357;1365;1418:3;1406:9;1397:7;1393:23;1389:33;1386:53;;;1435:1;1432;1425:12;1386:53;1462:16;;-1:-1:-1;;;;;1527:14:76;;;1524:34;;;1554:1;1551;1544:12;1524:34;1577:61;1630:7;1621:6;1610:9;1606:22;1577:61;:::i;:::-;1567:71;;1684:2;1673:9;1669:18;1663:25;1647:41;;1713:2;1703:8;1700:16;1697:36;;;1729:1;1726;1719:12;1697:36;;1752:63;1807:7;1796:8;1785:9;1781:24;1752:63;:::i;:::-;1742:73;;;1834:49;1879:2;1868:9;1864:18;1834:49;:::i;:::-;1824:59;;1902:49;1947:2;1936:9;1932:18;1902:49;:::i;:::-;1892:59;;1991:3;1980:9;1976:19;1970:26;1960:36;;2015:50;2060:3;2049:9;2045:19;2015:50;:::i;:::-;2005:60;;2105:3;2094:9;2090:19;2084:26;2074:36;;1173:943;;;;;;;;;;:::o;2926:380::-;3005:1;3001:12;;;;3048;;;3069:61;;3123:4;3115:6;3111:17;3101:27;;3069:61;3176:2;3168:6;3165:14;3145:18;3142:38;3139:161;;3222:10;3217:3;3213:20;3210:1;3203:31;3257:4;3254:1;3247:15;3285:4;3282:1;3275:15;3139:161;;2926:380;;;:::o;3437:545::-;3539:2;3534:3;3531:11;3528:448;;;3575:1;3600:5;3596:2;3589:17;3645:4;3641:2;3631:19;3715:2;3703:10;3699:19;3696:1;3692:27;3686:4;3682:38;3751:4;3739:10;3736:20;3733:47;;;-1:-1:-1;3774:4:76;3733:47;3829:2;3824:3;3820:12;3817:1;3813:20;3807:4;3803:31;3793:41;;3884:82;3902:2;3895:5;3892:13;3884:82;;;3947:17;;;3928:1;3917:13;3884:82;;;3888:3;;;3528:448;3437:545;;;:::o;4158:1352::-;4278:10;;-1:-1:-1;;;;;4300:30:76;;4297:56;;;4333:18;;:::i;:::-;4362:97;4452:6;4412:38;4444:4;4438:11;4412:38;:::i;:::-;4406:4;4362:97;:::i;:::-;4514:4;;4578:2;4567:14;;4595:1;4590:663;;;;5297:1;5314:6;5311:89;;;-1:-1:-1;5366:19:76;;;5360:26;5311:89;-1:-1:-1;;4115:1:76;4111:11;;;4107:24;4103:29;4093:40;4139:1;4135:11;;;4090:57;5413:81;;4560:944;;4590:663;3384:1;3377:14;;;3421:4;3408:18;;-1:-1:-1;;4626:20:76;;;4744:236;4758:7;4755:1;4752:14;4744:236;;;4847:19;;;4841:26;4826:42;;4939:27;;;;4907:1;4895:14;;;;4774:19;;4744:236;;;4748:3;5008:6;4999:7;4996:19;4993:201;;;5069:19;;;5063:26;-1:-1:-1;;5152:1:76;5148:14;;;5164:3;5144:24;5140:37;5136:42;5121:58;5106:74;;4993:201;-1:-1:-1;;;;;5240:1:76;5224:14;;;5220:22;5207:36;;-1:-1:-1;4158:1352:76:o;5515:384::-;796:13017:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033","sourceMap":"796:13017:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1948:44;;;;;;;;;;-1:-1:-1;1948:44:43;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1948:44:43;;;;;;-1:-1:-1;;;;;363:32:76;;;345:51;;333:2;318:18;1948:44:43;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;863:14:76;;856:22;838:41;;826:2;811:18;2565:202:0;698:187:76;1039:25:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1606:26::-;;;;;;;;;;;;;;;;;;;1792:25:76;;;1780:2;1765:18;1606:26:43;1646:177:76;1177:476:50;;;;;;;;;;-1:-1:-1;1177:476:50;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;3067:33:76;;;3049:52;;3037:2;3022:18;1177:476:50;2905:202:76;8281:432:43;;;;;;;;;;-1:-1:-1;8281:432:43;;;;;:::i;:::-;;:::i;8719:444::-;;;;;;;;;;-1:-1:-1;8719:444:43;;;;;:::i;:::-;;:::i;3810:120:0:-;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;10794:2086:43;;;;;;;;;;-1:-1:-1;10794:2086:43;;;;;:::i;:::-;;:::i;4226:136:0:-;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;5328:245::-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;6719:278:43:-;;;;;;;;;;-1:-1:-1;6719:278:43;;;;;:::i;:::-;;:::i;1012:21::-;;;;;;;;;;;;;:::i;1340:28::-;;;;;;;;;;;;;;;;3004:263:49;;;;;;;;;;-1:-1:-1;3004:263:49;;;;;:::i;:::-;;:::i;9627:113:43:-;;;;;;;;;;-1:-1:-1;9627:113:43;;;;;:::i;:::-;-1:-1:-1;;;;;9709:20:43;9686:4;9709:20;;;:10;:20;;;;;;:24;;;9627:113;922:35;;;;;;;;;;;;;;;144:20:49;;;;;;;;;;;;;;;;7540:108:43;;;;;;;;;;-1:-1:-1;7540:108:43;;;;;:::i;:::-;7609:13;:32;7540:108;243:45:49;;;;;;;;;;-1:-1:-1;243:45:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;1071:30:43;;;;;;;;;;;;;;;;1222:31;;;;;;;;;;;;;;;;9169:124;;;;;;;;;;-1:-1:-1;9169:124:43;;;;;:::i;:::-;9232:18;9269:17;;;:8;:17;;;;;;;;;9169:124;;;;;;;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;6473:106:43:-;;;;;;;;;;-1:-1:-1;6473:106:43;;;;;:::i;:::-;;:::i;9795:602::-;;;;;;:::i;:::-;;:::i;6281:90::-;;;;;;;;;;-1:-1:-1;6281:90:43;;;;;:::i;:::-;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;12939:801:43;;;;;;;;;;-1:-1:-1;12939:801:43;;;;;:::i;:::-;;:::i;7957:317::-;;;;;;;;;;-1:-1:-1;7957:317:43;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;9299:152:43:-;;;;;;;;;;-1:-1:-1;9299:152:43;;;;;:::i;:::-;;:::i;869:47::-;;;;;;;;;;;;;;;1858:28;;;;;;;;;;;;;;;;7769:145;;;;;;;;;;-1:-1:-1;7769:145:43;;;;;:::i;:::-;;:::i;2113:27::-;;;;;;;;;;;;;;;;7138:284;;;;;;;;;;-1:-1:-1;7138:284:43;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;1039:25:43:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1177:476:50:-;1549:39;;;-1:-1:-1;;;;;8205:15:76;;;8187:34;;8252:2;8237:18;;8230:34;;;8300:15;;8280:18;;;8273:43;1549:39:50;;-1:-1:-1;;1549:39:50;;;;;;8137:2:76;1549:39:50;;;-1:-1:-1;;;;1177:476:50;;;;;;;:::o;8281:432:43:-;8347:36;;-1:-1:-1;;;8347:36:43;;;;;1792:25:76;;;8387:10:43;;-1:-1:-1;;;;;8355:10:43;8347:27;;;;1765:18:76;;8347:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8347:50:43;;8339:101;;;;-1:-1:-1;;;8339:101:43;;8785:2:76;8339:101:43;;;8767:21:76;8824:2;8804:18;;;8797:30;8863:34;8843:18;;;8836:62;-1:-1:-1;;;8914:18:76;;;8907:36;8960:19;;8339:101:43;;;;;;;;;8479:29;8458:17;;;;:8;:17;;;;;;;;:50;;;;;;;;:::i;:::-;;8450:90;;;;-1:-1:-1;;;8450:90:43;;9192:2:76;8450:90:43;;;9174:21:76;9231:2;9211:18;;;9204:30;9270:29;9250:18;;;9243:57;9317:18;;8450:90:43;8990:351:76;8450:90:43;8551:17;;;;:8;:17;;;;;:49;;-1:-1:-1;;8551:49:43;8571:29;8551:49;;;8610:11;:16;;8551:49;;:17;8610:16;;8551:49;;8610:16;:::i;:::-;;;;-1:-1:-1;;8642:64:43;;;;;;8667:4;;8674:10;;8686:7;;8695:10;;8642:64;:::i;:::-;;;;;;;;8281:432;:::o;8719:444::-;8787:36;;-1:-1:-1;;;8787:36:43;;;;;1792:25:76;;;8827:10:43;;-1:-1:-1;;;;;8795:10:43;8787:27;;;;1765:18:76;;8787:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8787:50:43;;8779:103;;;;-1:-1:-1;;;8779:103:43;;10271:2:76;8779:103:43;;;10253:21:76;10310:2;10290:18;;;10283:30;10349:34;10329:18;;;10322:62;-1:-1:-1;;;10400:18:76;;;10393:38;10448:19;;8779:103:43;10069:404:76;8779:103:43;8921:31;8900:17;;;:8;:17;;;;;;;;:52;;;;;;;;:::i;:::-;;8892:94;;;;-1:-1:-1;;;8892:94:43;;10680:2:76;8892:94:43;;;10662:21:76;10719:2;10699:18;;;10692:30;10758:31;10738:18;;;10731:59;10807:18;;8892:94:43;10478:353:76;8892:94:43;9017:31;8997:17;;;:8;:17;;;;;:51;;-1:-1:-1;;8997:51:43;;;9058:11;:16;;8997:51;;9017:31;9058:16;;8997:51;;9058:16;:::i;:::-;;;;-1:-1:-1;;9090:66:43;;;;;;9117:4;;9124:10;;9136:7;;9145:10;;9090:66;:::i;10794:2086::-;-1:-1:-1;;;;;9709:20:43;;10854:4;9709:20;;;:10;:20;;;;;;10870:78;;;;-1:-1:-1;;;10870:78:43;;;;;;;:::i;:::-;11002:29;10980:8;-1:-1:-1;;;;;10966:30:43;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;;;;;:::i;:::-;;10958:100;;;;-1:-1:-1;;;10958:100:43;;11870:2:76;10958:100:43;;;11852:21:76;11909:2;11889:18;;;11882:30;-1:-1:-1;;;11928:18:76;;;11921:52;11990:18;;10958:100:43;11668:346:76;10958:100:43;11090:8;-1:-1:-1;;;;;11076:33:43;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11115:1;11076:40;11068:81;;;;-1:-1:-1;;;11068:81:43;;12410:2:76;11068:81:43;;;12392:21:76;12449:2;12429:18;;;12422:30;12488;12468:18;;;12461:58;12536:18;;11068:81:43;12208:352:76;11068:81:43;11199:8;-1:-1:-1;;;;;11185:31:43;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11167:15;:51;11159:108;;;;-1:-1:-1;;;11159:108:43;;12767:2:76;11159:108:43;;;12749:21:76;12806:2;12786:18;;;12779:30;12845:34;12825:18;;;12818:62;-1:-1:-1;;;12896:18:76;;;12889:42;12948:19;;11159:108:43;12565:408:76;11159:108:43;11296:37;;-1:-1:-1;;;11296:37:43;;11278:15;11296:37;;;1792:25:76;;;11278:15:43;-1:-1:-1;;;;;11296:34:43;;;;;1765:18:76;;11296:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11362;;-1:-1:-1;;;11362:37:43;;11397:1;11362:37;;;1792:25:76;11278:55:43;;-1:-1:-1;11343:16:43;;-1:-1:-1;;;;;11362:34:43;;;;;1765:18:76;;11362:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11432;;-1:-1:-1;;;11432:37:43;;11467:1;11432:37;;;1792:25:76;11343:56:43;;-1:-1:-1;11409:20:43;;-1:-1:-1;;;;;11432:34:43;;;;;1765:18:76;;11432:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11409:60;-1:-1:-1;11479:18:43;11409:60;11500:18;11510:8;11500:7;:18;:::i;:::-;:33;;;;:::i;:::-;11479:54;;11544:28;11609:5;11590:15;;11576:11;;:29;;;;:::i;:::-;11575:39;;;;:::i;:::-;11544:70;;11624:29;11691:5;11671:16;;11657:11;;:30;;;;:::i;:::-;11656:40;;;;:::i;:::-;11624:72;;11707:18;11743:17;11828:21;11817:8;:32;11813:83;;;11881:4;11865:20;;11813:83;11956:20;11943:10;:33;11939:83;;;-1:-1:-1;12007:4:43;11939:83;12036:13;:29;;;;;12053:12;12036:29;12032:676;;;12125:39;;-1:-1:-1;;;12125:39:43;;12162:1;12125:39;;;14095:36:76;-1:-1:-1;;;;;12125:36:43;;;;;14068:18:76;;12125:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12218:19;12254:8;-1:-1:-1;;;;;12240:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12218:62;;12299:7;12294:290;12316:11;12312:1;:15;;;12294:290;;;12380:36;;-1:-1:-1;;;12380:36:43;;14125:4:76;14113:17;;12380:36:43;;;14095::76;12352:25:43;;-1:-1:-1;;;;;12380:33:43;;;;;14068:18:76;;12380:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12380:36:43;;;;;;;;;;;;:::i;:::-;12352:64;;12446:53;12458:3;:10;;;12470:3;:9;;;12481:3;:7;;;12490:3;:8;;;12446:11;:53::i;:::-;12434:9;;;:65;;;12517:52;;-1:-1:-1;;;12517:52:43;;16251:4:76;16239:17;;12517:52:43;;;16221:36:76;16273:18;;;16266:34;;;;-1:-1:-1;;;;;12517:38:43;;;;;16194:18:76;;12517:52:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:250;12329:3;;;;;:::i;:::-;;;;12294:290;;;;12067:527;12032:676;;;12658:39;;-1:-1:-1;;;12658:39:43;;12695:1;12658:39;;;14095:36:76;-1:-1:-1;;;;;12658:36:43;;;;;14068:18:76;;12658:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12032:676;12723:103;;;16962:14:76;;16955:22;16937:41;;17021:14;;17014:22;17009:2;16994:18;;16987:50;17053:18;;;17046:34;;;17111:2;17096:18;;17089:34;;;17154:3;17139:19;;17132:35;;;12723:103:43;;16924:3:76;16909:19;12723:103:43;;;;;;;12844:12;:29;;;;;12860:13;12844:29;12837:36;10794:2086;-1:-1:-1;;;;;;;;;;10794:2086:43:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;6719:278:43:-;6822:5;6800:18;:27;;6792:78;;;;-1:-1:-1;;;6792:78:43;;;;;;;:::i;:::-;6909:1;6888:18;:22;6880:63;;;;-1:-1:-1;;;6880:63:43;;17787:2:76;6880:63:43;;;17769:21:76;17826:2;17806:18;;;17799:30;17865;17845:18;;;17838:58;17913:18;;6880:63:43;17585:352:76;6880:63:43;6954:15;:36;6719:278::o;1012:21::-;;;;;;;:::i;3004:263:49:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:49;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:49:o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;6473:106:43:-;6544:11;:28;6558:14;6544:11;:28;:::i;:::-;;6473:106;:::o;9795:602::-;9871:7;9911:12;;9898:9;:25;9890:77;;;;-1:-1:-1;;;9890:77:43;;20976:2:76;9890:77:43;;;20958:21:76;21015:2;20995:18;;;20988:30;21054:34;21034:18;;;21027:62;-1:-1:-1;;;21105:18:76;;;21098:37;21152:19;;9890:77:43;20774:403:76;9890:77:43;10048:106;;-1:-1:-1;;;10048:106:43;;10033:12;;-1:-1:-1;;;;;10069:22:43;10048:64;;;;:106;;10113:13;;10136:4;;10143:10;;10048:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10033:121;;10205:1;10188:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;10235:13:43;;;-1:-1:-1;;;;;10216:16:43;;;;;;:10;:16;;;;;;;;:32;;;10258:24;;;:9;:24;;;;;:31;;-1:-1:-1;;;;;;10258:31:43;;;;;;10342:13;;10305:63;;;;;;10329:4;;10227;;10357:10;;10305:63;:::i;:::-;;;;;;;;10386:4;9795:602;-1:-1:-1;;9795:602:43:o;6281:90::-;6344:7;:20;6354:10;6344:7;:20;:::i;12939:801::-;-1:-1:-1;;;;;9709:20:43;;9686:4;9709:20;;;:10;:20;;;;;;12999:78;;;;-1:-1:-1;;;12999:78:43;;;;;;;:::i;:::-;13131:27;13109:8;-1:-1:-1;;;;;13095:30:43;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;;;;;;:::i;:::-;;13087:98;;;;-1:-1:-1;;;13087:98:43;;11870:2:76;13087:98:43;;;11852:21:76;11909:2;11889:18;;;11882:30;-1:-1:-1;;;11928:18:76;;;11921:52;11990:18;;13087:98:43;11668:346:76;13087:98:43;13246:1;13217:8;-1:-1:-1;;;;;13203:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;13195:78;;;;-1:-1:-1;;;13195:78:43;;21807:2:76;13195:78:43;;;21789:21:76;21846:2;21826:18;;;21819:30;-1:-1:-1;;;21865:18:76;;;21858:51;21926:18;;13195:78:43;21605:345:76;13195:78:43;13326:39;;-1:-1:-1;;;13326:39:43;;13363:1;13326:39;;;14095:36:76;-1:-1:-1;;;;;13326:36:43;;;;;14068:18:76;;13326:39:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13410:19;13446:8;-1:-1:-1;;;;;13432:38:43;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13410:62;;13487:7;13482:210;13504:11;13500:1;:15;;;13482:210;;;13564:36;;-1:-1:-1;;;13564:36:43;;14125:4:76;14113:17;;13564:36:43;;;14095::76;13536:25:43;;-1:-1:-1;;;;;13564:33:43;;;;;14068:18:76;;13564:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13564:36:43;;;;;;;;;;;;:::i;:::-;13536:64;;13614:67;13629:3;:10;;;13641:3;:9;;;13652:3;:7;;;13661:3;:8;;;13671:3;:9;;;13614:14;:67::i;:::-;;13522:170;13517:3;;;;;:::i;:::-;;;;13482:210;;;-1:-1:-1;13707:26:43;;-1:-1:-1;;;;;363:32:76;;345:51;;13707:26:43;;333:2:76;318:18;13707:26:43;;;;;;;;12989:751;12939:801;:::o;7957:317::-;280:23:72;2464:16:0;2475:4;2464:10;:16::i;:::-;8073:31:43::1;8052:17:::0;;;:8:::1;:17;::::0;;;;;::::1;;:52;::::0;::::1;;;;;;:::i;:::-;;8044:101;;;::::0;-1:-1:-1;;;8044:101:43;;22356:2:76;8044:101:43::1;::::0;::::1;22338:21:76::0;22395:2;22375:18;;;22368:30;22434:34;22414:18;;;22407:62;-1:-1:-1;;;22485:18:76;;;22478:34;22529:19;;8044:101:43::1;22154:400:76::0;8044:101:43::1;8156:17;::::0;;;:8:::1;:17;::::0;;;;:46;;8176:26:::1;::::0;8156:17;-1:-1:-1;;8156:46:43::1;8176:26:::0;;8156:46:::1;;::::0;;-1:-1:-1;8218:49:43::1;::::0;;8240:4:::1;22799:34:76::0;;-1:-1:-1;;;;;8247:10:43::1;22869:15:76::0;22864:2;22849:18;;22842:43;22901:18;;;22894:34;;;8218:49:43::1;::::0;22749:2:76;22734:18;8218:49:43::1;22559:375:76::0;4642:138:0;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;9299:152:43:-:0;9375:4;9438:6;-1:-1:-1;;;;;9398:46:43;9406:10;-1:-1:-1;;;;;9398:27:43;;9426:7;9398:36;;;;;;;;;;;;;1792:25:76;;1780:2;1765:18;;1646:177;9398:36:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9398:46:43;;;9299:152;-1:-1:-1;;;9299:152:43:o;7769:145::-;7841:1;7830:8;:12;7822:56;;;;-1:-1:-1;;;7822:56:43;;23141:2:76;7822:56:43;;;23123:21:76;23180:2;23160:18;;;23153:30;23219:33;23199:18;;;23192:61;23270:18;;7822:56:43;22939:355:76;7822:56:43;7888:19;7898:8;3429:5:49;:16;3373:79;7888:19:43;7769:145;:::o;7138:284::-;7244:5;7221:19;:28;;7213:79;;;;-1:-1:-1;;;7213:79:43;;;;;;;:::i;:::-;7332:1;7310:19;:23;7302:64;;;;-1:-1:-1;;;7302:64:43;;17787:2:76;7302:64:43;;;17769:21:76;17826:2;17806:18;;;17799:30;17865;17845:18;;;17838:58;17913:18;;7302:64:43;17585:352:76;7302:64:43;7377:16;:38;7138:284::o;3686:388:49:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:49;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;:13;:22;;;;;;:29;;-1:-1:-1;;3945:29:49;3970:4;3945:29;;;3881:54;-1:-1:-1;3990:54:49;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:49;3686:388;-1:-1:-1;;;;;3686:388:49:o;3199:103:0:-;3265:30;3276:4;735:10:12;3265::0;:30::i;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;5008:907:49;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:49;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:49;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:49;;;;;1792:25:76;;;1765:18;;5277:24:49;1646:177:76;5241:60:49;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:49;;;;;24201:25:76;;;5372:15:49;24242:18:76;;;24235:34;24285:18;;;24278:34;;;24174:18;;5348:47:49;23999:319:76;5311:84:49;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:49;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:49;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:49;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:49;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:49:o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;25490:32:76;;3565:47:0;;;25472:51:76;25539:18;;;25532:34;;;25445:18;;3565:47:0;25298:274:76;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:76;;14:180;-1:-1:-1;14:180:76:o;407:286::-;465:6;518:2;506:9;497:7;493:23;489:32;486:52;;;534:1;531;524:12;486:52;560:23;;-1:-1:-1;;;;;;612:32:76;;602:43;;592:71;;659:1;656;649:12;592:71;682:5;407:286;-1:-1:-1;;;407:286:76:o;890:250::-;975:1;985:113;999:6;996:1;993:13;985:113;;;1075:11;;;1069:18;1056:11;;;1049:39;1021:2;1014:10;985:113;;;-1:-1:-1;;1132:1:76;1114:16;;1107:27;890:250::o;1145:271::-;1187:3;1225:5;1219:12;1252:6;1247:3;1240:19;1268:76;1337:6;1330:4;1325:3;1321:14;1314:4;1307:5;1303:16;1268:76;:::i;:::-;1398:2;1377:15;-1:-1:-1;;1373:29:76;1364:39;;;;1405:4;1360:50;;1145:271;-1:-1:-1;;1145:271:76:o;1421:220::-;1570:2;1559:9;1552:21;1533:4;1590:45;1631:2;1620:9;1616:18;1608:6;1590:45;:::i;1828:131::-;-1:-1:-1;;;;;1903:31:76;;1893:42;;1883:70;;1949:1;1946;1939:12;1964:936;2061:6;2069;2077;2085;2093;2146:3;2134:9;2125:7;2121:23;2117:33;2114:53;;;2163:1;2160;2153:12;2114:53;2202:9;2189:23;2221:31;2246:5;2221:31;:::i;:::-;2271:5;-1:-1:-1;2328:2:76;2313:18;;2300:32;2341:33;2300:32;2341:33;:::i;:::-;2393:7;-1:-1:-1;2447:2:76;2432:18;;2419:32;;-1:-1:-1;2502:2:76;2487:18;;2474:32;2525:18;2555:14;;;2552:34;;;2582:1;2579;2572:12;2552:34;2620:6;2609:9;2605:22;2595:32;;2665:7;2658:4;2654:2;2650:13;2646:27;2636:55;;2687:1;2684;2677:12;2636:55;2727:2;2714:16;2753:2;2745:6;2742:14;2739:34;;;2769:1;2766;2759:12;2739:34;2814:7;2809:2;2800:6;2796:2;2792:15;2788:24;2785:37;2782:57;;;2835:1;2832;2825:12;2782:57;1964:936;;;;-1:-1:-1;1964:936:76;;-1:-1:-1;2866:2:76;2858:11;;2888:6;1964:936;-1:-1:-1;;;1964:936:76:o;3479:247::-;3538:6;3591:2;3579:9;3570:7;3566:23;3562:32;3559:52;;;3607:1;3604;3597:12;3559:52;3646:9;3633:23;3665:31;3690:5;3665:31;:::i;3731:315::-;3799:6;3807;3860:2;3848:9;3839:7;3835:23;3831:32;3828:52;;;3876:1;3873;3866:12;3828:52;3912:9;3899:23;3889:33;;3972:2;3961:9;3957:18;3944:32;3985:31;4010:5;3985:31;:::i;:::-;4035:5;4025:15;;;3731:315;;;;;:::o;4051:127::-;4112:10;4107:3;4103:20;4100:1;4093:31;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4183:253;4255:2;4249:9;4297:4;4285:17;;4332:18;4317:34;;4353:22;;;4314:62;4311:88;;;4379:18;;:::i;:::-;4415:2;4408:22;4183:253;:::o;4441:275::-;4512:2;4506:9;4577:2;4558:13;;-1:-1:-1;;4554:27:76;4542:40;;4612:18;4597:34;;4633:22;;;4594:62;4591:88;;;4659:18;;:::i;:::-;4695:2;4688:22;4441:275;;-1:-1:-1;4441:275:76:o;4721:187::-;4770:4;4803:18;4795:6;4792:30;4789:56;;;4825:18;;:::i;:::-;-1:-1:-1;4891:2:76;4870:15;-1:-1:-1;;4866:29:76;4897:4;4862:40;;4721:187::o;4913:338::-;4978:5;5007:53;5023:36;5052:6;5023:36;:::i;:::-;5007:53;:::i;:::-;4998:62;;5083:6;5076:5;5069:21;5123:3;5114:6;5109:3;5105:16;5102:25;5099:45;;;5140:1;5137;5130:12;5099:45;5189:6;5184:3;5177:4;5170:5;5166:16;5153:43;5243:1;5236:4;5227:6;5220:5;5216:18;5212:29;5205:40;4913:338;;;;;:::o;5256:222::-;5299:5;5352:3;5345:4;5337:6;5333:17;5329:27;5319:55;;5370:1;5367;5360:12;5319:55;5392:80;5468:3;5459:6;5446:20;5439:4;5431:6;5427:17;5392:80;:::i;5483:944::-;5597:6;5605;5613;5621;5629;5682:3;5670:9;5661:7;5657:23;5653:33;5650:53;;;5699:1;5696;5689:12;5650:53;5738:9;5725:23;5757:31;5782:5;5757:31;:::i;:::-;5807:5;-1:-1:-1;5859:2:76;5844:18;;5831:32;;-1:-1:-1;5914:2:76;5899:18;;5886:32;5937:18;5967:14;;;5964:34;;;5994:1;5991;5984:12;5964:34;6017:50;6059:7;6050:6;6039:9;6035:22;6017:50;:::i;:::-;6007:60;;6120:2;6109:9;6105:18;6092:32;6076:48;;6149:2;6139:8;6136:16;6133:36;;;6165:1;6162;6155:12;6133:36;-1:-1:-1;6188:24:76;;6243:4;6235:13;;6231:27;-1:-1:-1;6221:55:76;;6272:1;6269;6262:12;6221:55;6295:74;6361:7;6356:2;6343:16;6338:2;6334;6330:11;6295:74;:::i;:::-;5483:944;;;;-1:-1:-1;5483:944:76;;6416:3;6401:19;6388:33;;5483:944;-1:-1:-1;;;5483:944:76:o;6432:127::-;6493:10;6488:3;6484:20;6481:1;6474:31;6524:4;6521:1;6514:15;6548:4;6545:1;6538:15;6564:346;6714:2;6699:18;;6747:1;6736:13;;6726:144;;6792:10;6787:3;6783:20;6780:1;6773:31;6827:4;6824:1;6817:15;6855:4;6852:1;6845:15;6726:144;6879:25;;;6564:346;:::o;6915:322::-;6984:6;7037:2;7025:9;7016:7;7012:23;7008:32;7005:52;;;7053:1;7050;7043:12;7005:52;7093:9;7080:23;7126:18;7118:6;7115:30;7112:50;;;7158:1;7155;7148:12;7112:50;7181;7223:7;7214:6;7203:9;7199:22;7181:50;:::i;:::-;7171:60;6915:322;-1:-1:-1;;;;6915:322:76:o;7562:380::-;7641:1;7637:12;;;;7684;;;7705:61;;7759:4;7751:6;7747:17;7737:27;;7705:61;7812:2;7804:6;7801:14;7781:18;7778:38;7775:161;;7858:10;7853:3;7849:20;7846:1;7839:31;7893:4;7890:1;7883:15;7921:4;7918:1;7911:15;7775:161;;7562:380;;;:::o;8327:251::-;8397:6;8450:2;8438:9;8429:7;8425:23;8421:32;8418:52;;;8466:1;8463;8456:12;8418:52;8498:9;8492:16;8517:31;8542:5;8517:31;:::i;9346:127::-;9407:10;9402:3;9398:20;9395:1;9388:31;9438:4;9435:1;9428:15;9462:4;9459:1;9452:15;9478:125;9543:9;;;9564:10;;;9561:36;;;9577:18;;:::i;9608:456::-;-1:-1:-1;;;;;9895:15:76;;;9877:34;;9947:15;;;9942:2;9927:18;;9920:43;9994:2;9979:18;;9972:34;;;;10042:15;;;10037:2;10022:18;;10015:43;9826:3;9811:19;;9608:456::o;10836:128::-;10903:9;;;10924:11;;;10921:37;;;10938:18;;:::i;10969:409::-;11171:2;11153:21;;;11210:2;11190:18;;;11183:30;11249:34;11244:2;11229:18;;11222:62;-1:-1:-1;;;11315:2:76;11300:18;;11293:43;11368:3;11353:19;;10969:409::o;11383:280::-;11473:6;11526:2;11514:9;11505:7;11501:23;11497:32;11494:52;;;11542:1;11539;11532:12;11494:52;11574:9;11568:16;11613:1;11606:5;11603:12;11593:40;;11629:1;11626;11619:12;12019:184;12089:6;12142:2;12130:9;12121:7;12117:23;12113:32;12110:52;;;12158:1;12155;12148:12;12110:52;-1:-1:-1;12181:16:76;;12019:184;-1:-1:-1;12019:184:76:o;13548:168::-;13621:9;;;13652;;13669:15;;;13663:22;;13649:37;13639:71;;13690:18;;:::i;13721:217::-;13761:1;13787;13777:132;;13831:10;13826:3;13822:20;13819:1;13812:31;13866:4;13863:1;13856:15;13894:4;13891:1;13884:15;13777:132;-1:-1:-1;13923:9:76;;13721:217::o;14333:322::-;14409:5;14438:53;14454:36;14483:6;14454:36;:::i;14438:53::-;14429:62;;14514:6;14507:5;14500:21;14554:3;14545:6;14540:3;14536:16;14533:25;14530:45;;;14571:1;14568;14561:12;14530:45;14584:65;14642:6;14635:4;14628:5;14624:16;14619:3;14584:65;:::i;14660:236::-;14713:5;14766:3;14759:4;14751:6;14747:17;14743:27;14733:55;;14784:1;14781;14774:12;14733:55;14806:84;14886:3;14877:6;14871:13;14864:4;14856:6;14852:17;14806:84;:::i;14901:1143::-;14996:6;15049:2;15037:9;15028:7;15024:23;15020:32;15017:52;;;15065:1;15062;15055:12;15017:52;15098:9;15092:16;15127:18;15168:2;15160:6;15157:14;15154:34;;;15184:1;15181;15174:12;15154:34;15207:22;;;;15263:4;15245:16;;;15241:27;15238:47;;;15281:1;15278;15271:12;15238:47;15307:22;;:::i;:::-;15359:2;15353:9;15371:33;15396:7;15371:33;:::i;:::-;15413:22;;15481:2;15473:11;;;15467:18;15451:14;;;15444:42;15525:2;15517:11;;15511:18;15541:16;;;15538:36;;;15570:1;15567;15560:12;15538:36;15593:17;;15641:4;15633:13;;15629:27;-1:-1:-1;15619:55:76;;15670:1;15667;15660:12;15619:55;15706:78;15776:7;15771:2;15765:9;15760:2;15756;15752:11;15706:78;:::i;:::-;15701:2;15694:5;15690:14;15683:102;;15824:2;15820;15816:11;15810:18;15853:2;15843:8;15840:16;15837:36;;;15869:1;15866;15859:12;15837:36;15905:55;15952:7;15941:8;15937:2;15933:17;15905:55;:::i;:::-;15900:2;15893:5;15889:14;15882:79;;16008:3;16004:2;16000:12;15994:19;15988:3;15981:5;15977:15;15970:44;16033:5;16023:15;;;;;14901:1143;;;;:::o;16311:175::-;16348:3;16392:4;16385:5;16381:16;16421:4;16412:7;16409:17;16406:43;;16429:18;;:::i;:::-;16478:1;16465:15;;16311:175;-1:-1:-1;;16311:175:76:o;17178:402::-;17380:2;17362:21;;;17419:2;17399:18;;;17392:30;17458:34;17453:2;17438:18;;17431:62;-1:-1:-1;;;17524:2:76;17509:18;;17502:36;17570:3;17555:19;;17178:402::o;17942:623::-;18250:1;18246;18241:3;18237:11;18233:19;18225:6;18221:32;18210:9;18203:51;18290:6;18285:2;18274:9;18270:18;18263:34;18333:3;18328:2;18317:9;18313:18;18306:31;18184:4;18360:46;18401:3;18390:9;18386:19;18378:6;18360:46;:::i;:::-;18454:9;18446:6;18442:22;18437:2;18426:9;18422:18;18415:50;18482:33;18508:6;18500;18482:33;:::i;:::-;18474:41;;;18552:6;18546:3;18535:9;18531:19;18524:35;17942:623;;;;;;;;:::o;18696:545::-;18798:2;18793:3;18790:11;18787:448;;;18834:1;18859:5;18855:2;18848:17;18904:4;18900:2;18890:19;18974:2;18962:10;18958:19;18955:1;18951:27;18945:4;18941:38;19010:4;18998:10;18995:20;18992:47;;;-1:-1:-1;19033:4:76;18992:47;19088:2;19083:3;19079:12;19076:1;19072:20;19066:4;19062:31;19052:41;;19143:82;19161:2;19154:5;19151:13;19143:82;;;19206:17;;;19187:1;19176:13;19143:82;;;19147:3;;;18696:545;;;:::o;19417:1352::-;19543:3;19537:10;19570:18;19562:6;19559:30;19556:56;;;19592:18;;:::i;:::-;19621:97;19711:6;19671:38;19703:4;19697:11;19671:38;:::i;:::-;19665:4;19621:97;:::i;:::-;19773:4;;19837:2;19826:14;;19854:1;19849:663;;;;20556:1;20573:6;20570:89;;;-1:-1:-1;20625:19:76;;;20619:26;20570:89;-1:-1:-1;;19374:1:76;19370:11;;;19366:24;19362:29;19352:40;19398:1;19394:11;;;19349:57;20672:81;;19819:944;;19849:663;18643:1;18636:14;;;18680:4;18667:18;;-1:-1:-1;;19885:20:76;;;20003:236;20017:7;20014:1;20011:14;20003:236;;;20106:19;;;20100:26;20085:42;;20198:27;;;;20166:1;20154:14;;;;20033:19;;20003:236;;;20007:3;20267:6;20258:7;20255:19;20252:201;;;20328:19;;;20322:26;-1:-1:-1;;20411:1:76;20407:14;;;20423:3;20403:24;20399:37;20395:42;20380:58;20365:74;;20252:201;-1:-1:-1;;;;;20499:1:76;20483:14;;;20479:22;20466:36;;-1:-1:-1;19417:1352:76:o;21182:418::-;21387:2;21376:9;21369:21;21350:4;21407:45;21448:2;21437:9;21433:18;21425:6;21407:45;:::i;:::-;-1:-1:-1;;;;;21526:15:76;;;21521:2;21506:18;;21499:43;21578:15;;;;21573:2;21558:18;;;21551:43;21399:53;21182:418;-1:-1:-1;;21182:418:76:o;23299:695::-;23606:6;23595:9;23588:25;23678:1;23674;23669:3;23665:11;23661:19;23653:6;23649:32;23644:2;23633:9;23629:18;23622:60;23718:6;23713:2;23702:9;23698:18;23691:34;23761:3;23756:2;23745:9;23741:18;23734:31;23569:4;23788:46;23829:3;23818:9;23814:19;23806:6;23788:46;:::i;:::-;23883:9;23875:6;23871:22;23865:3;23854:9;23850:19;23843:51;23911:33;23937:6;23929;23911:33;:::i;:::-;23903:41;;;23981:6;23975:3;23964:9;23960:19;23953:35;23299:695;;;;;;;;;:::o;24323:384::-;-1:-1:-1;;;;;;24508:33:76;;24496:46;;24565:13;;24478:3;;24587:74;24565:13;24650:1;24641:11;;24634:4;24622:17;;24587:74;:::i;:::-;24681:16;;;;24699:1;24677:24;;24323:384;-1:-1:-1;;;24323:384:76:o;24712:287::-;24841:3;24879:6;24873:13;24895:66;24954:6;24949:3;24942:4;24934:6;24930:17;24895:66;:::i;:::-;24977:16;;;;;24712:287;-1:-1:-1;;24712:287:76:o;25004:289::-;25179:6;25168:9;25161:25;25222:2;25217;25206:9;25202:18;25195:30;25142:4;25242:45;25283:2;25272:9;25268:18;25260:6;25242:45;:::i","linkReferences":{},"immutableReferences":{"47103":[{"start":1658,"length":32},{"start":5267,"length":32}],"47105":[{"start":1153,"length":32},{"start":2117,"length":32},{"start":2534,"length":32},{"start":2618,"length":32},{"start":3027,"length":32},{"start":6593,"length":32},{"start":6727,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","daoMetadata()":"0787e15c","daoName()":"48976936","delay()":"6a42b8f8","draftProposal(string)":"9f367e08","evaluateProposal(address)":"2df57dd6","executeProposal(address)":"a67a03ab","getMemberStatus(uint256)":"7d0d719b","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","inviteMember(uint256)":"bc5862a4","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","loadedActions(bytes32)":"6e8c7ab9","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalCost()":"e664f3b2","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","registerMember(uint256)":"22e994f3","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setDelay(uint256)":"e177246e","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8","supportsInterface(bytes4)":"01ffc9a7","unregisterMember(uint256)":"23dd523d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"daoName_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"daoMetadata_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nftAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposalFactoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"DAOCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MemberInvited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalEvaluated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle\",\"type\":\"string\"}],\"name\":\"draftProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"evaluateProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"enum Enums.MemberStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"inviteMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"registerMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Craig Branscom\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"DAOCreated(address,address,address)\":{\"params\":{\"admin\":\"address set with initial admin role\",\"nftAddress\":\"address of nft contract linked to dao\",\"proposalFactoryAddress\":\"address of proposal factory used by dao\"}},\"MemberInvited(address,address,uint256)\":{\"params\":{\"daoAddress\":\"address of dao where member was invited\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberRegistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was registered\",\"memberAddress\":\"address registering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberUnregistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was unregistered\",\"memberAddress\":\"address unregistering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being unregistered\"}},\"ProposalCreated(address,address,uint256,address)\":{\"params\":{\"creator\":\"address of proposal creator\",\"daoAddress\":\"address of dao\",\"proposal\":\"address of proposal contract\",\"proposalId\":\"unique proposal id assigned by dao\"}},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"ProposalExecuted(address)\":{\"params\":{\"proposal\":\"address of proposal that was executed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"admin_\":\"address that will be assigned the DAO_ADMIN role\",\"daoMetadata_\":\"metadata link for the dao\",\"daoName_\":\"name of the dao\",\"delay_\":\"amount of time that must elapse before a loaded action can be executed (in seconds)\",\"nftAddress_\":\"address of ERC721 contract representing voting rights\",\"proposalCost_\":\"required cost to draft a proposal (in wei)\",\"proposalFactoryAddress_\":\"address of OGREProposalFactory contract\"}},\"draftProposal(string)\":{\"details\":\"craft a new proposal\"},\"evaluateProposal(address)\":{\"details\":\"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.\",\"params\":{\"proposal\":\"address of proposal contract to evaluate\"},\"returns\":{\"_0\":\"bool true if proposal passed, false if failed\"}},\"executeProposal(address)\":{\"details\":\"executes readied actions\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}},\"isProposal(address)\":{\"details\":\"returns true if address is a proposal contract created by dao.\",\"params\":{\"proposal\":\"address to check\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDAOMetadata(string)\":{\"details\":\"sets new dao metadata\",\"params\":{\"newDAOMetadata\":\"new dao metadata\"}},\"setDAOName(string)\":{\"details\":\"sets new dao name\",\"params\":{\"newDAOName\":\"new dao name\"}},\"setDelay(uint256)\":{\"details\":\"sets a new delay for action hopper\",\"params\":{\"newDelay\":\"new delay value (in seconds)\"}},\"setMinVotePeriod(uint256)\":{\"details\":\"sets new min vote period for dao\",\"params\":{\"newMinVotePeriod\":\"min time in seconds\"}},\"setQuorumThreshold(uint256)\":{\"details\":\"sets new quorum threshold for dao. \",\"params\":{\"newQuorumThreshold\":\"quorum percentage (e.g. 555 = 5.55%)\"}},\"setSupportThreshold(uint256)\":{\"details\":\"sets new support threshold for dao\",\"params\":{\"newSupportThreshold\":\"support percentage (e.g. 555 = 5.55%)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine DAO Contract\",\"version\":1},\"userdoc\":{\"events\":{\"DAOCreated(address,address,address)\":{\"notice\":\"logs a successful dao creation\"},\"MemberInvited(address,address,uint256)\":{\"notice\":\"logs a successful member invited\"},\"MemberRegistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member registration\"},\"MemberUnregistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member unregistration\"},\"ProposalCreated(address,address,uint256,address)\":{\"notice\":\"logs a proposal creation\"},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"ProposalExecuted(address)\":{\"notice\":\"logs successful execution of all proposal actions\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREDAO.sol\":\"OGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"daoName_","type":"string"},{"internalType":"string","name":"daoMetadata_","type":"string"},{"internalType":"address","name":"nftAddress_","type":"address"},{"internalType":"address","name":"proposalFactoryAddress_","type":"address"},{"internalType":"uint256","name":"proposalCost_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"address","name":"proposalFactoryAddress","type":"address","indexed":false},{"internalType":"address","name":"admin","type":"address","indexed":false}],"type":"event","name":"DAOCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"MemberInvited","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"proposal","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalEvaluated","anonymous":false},{"inputs":[{"internalType":"address","name":"proposal","type":"address","indexed":false}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"proposalTitle","type":"string"}],"stateMutability":"payable","type":"function","name":"draftProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"evaluateProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"enum Enums.MemberStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"inviteMember"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerMember"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDelay"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"admin_":"address that will be assigned the DAO_ADMIN role","daoMetadata_":"metadata link for the dao","daoName_":"name of the dao","delay_":"amount of time that must elapse before a loaded action can be executed (in seconds)","nftAddress_":"address of ERC721 contract representing voting rights","proposalCost_":"required cost to draft a proposal (in wei)","proposalFactoryAddress_":"address of OGREProposalFactory contract"}},"draftProposal(string)":{"details":"craft a new proposal"},"evaluateProposal(address)":{"details":"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.","params":{"proposal":"address of proposal contract to evaluate"},"returns":{"_0":"bool true if proposal passed, false if failed"}},"executeProposal(address)":{"details":"executes readied actions"},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}},"isProposal(address)":{"details":"returns true if address is a proposal contract created by dao.","params":{"proposal":"address to check"}},"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDAOMetadata(string)":{"details":"sets new dao metadata","params":{"newDAOMetadata":"new dao metadata"}},"setDAOName(string)":{"details":"sets new dao name","params":{"newDAOName":"new dao name"}},"setDelay(uint256)":{"details":"sets a new delay for action hopper","params":{"newDelay":"new delay value (in seconds)"}},"setMinVotePeriod(uint256)":{"details":"sets new min vote period for dao","params":{"newMinVotePeriod":"min time in seconds"}},"setQuorumThreshold(uint256)":{"details":"sets new quorum threshold for dao. ","params":{"newQuorumThreshold":"quorum percentage (e.g. 555 = 5.55%)"}},"setSupportThreshold(uint256)":{"details":"sets new support threshold for dao","params":{"newSupportThreshold":"support percentage (e.g. 555 = 5.55%)"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREDAO.sol":"OGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":43} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"daoName_","type":"string","internalType":"string"},{"name":"daoMetadata_","type":"string","internalType":"string"},{"name":"nftAddress_","type":"address","internalType":"address"},{"name":"proposalFactoryAddress_","type":"address","internalType":"address"},{"name":"proposalCost_","type":"uint256","internalType":"uint256"},{"name":"admin_","type":"address","internalType":"address"},{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"draftProposal","inputs":[{"name":"proposalTitle","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"evaluateProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.MemberStatus"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inviteMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCost","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DAOCreated","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposalFactoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"admin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberInvited","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposal","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalEvaluated","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposal","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a","sourceMap":"799:12999:11:-:0;;;5276:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:15;:14;;;-1:-1:-1;;;;;5556:27:11;::::1;5548:74;;;::::0;-1:-1:-1;;;5548:74:11;;2323:2:30;5548:74:11::1;::::0;::::1;2305:21:30::0;2362:2;2342:18;;;2335:30;2401:34;2381:18;;;2374:62;-1:-1:-1;;;2452:18:30;;;2445:32;2494:19;;5548:74:11::1;;;;;;;;;-1:-1:-1::0;;;;;5640:22:11;::::1;5632:68;;;::::0;-1:-1:-1;;;5632:68:11;;2726:2:30;5632:68:11::1;::::0;::::1;2708:21:30::0;2765:2;2745:18;;;2738:30;2804:34;2784:18;;;2777:62;-1:-1:-1;;;2855:18:30;;;2848:31;2896:19;;5632:68:11::1;2524:397:30::0;5632:68:11::1;5711:7;:18;5721:8:::0;5711:7;:18:::1;:::i;:::-;-1:-1:-1::0;5739:11:11::1;:26;5753:12:::0;5739:11;:26:::1;:::i;:::-;-1:-1:-1::0;;;;;;5775:24:11;;::::1;;::::0;5809:48;::::1;;::::0;5867:12:::1;:28:::0;;;5906:39:::1;-1:-1:-1::0;;;;;;;;;;;5938:6:11;5906:10:::1;:39::i;:::-;-1:-1:-1::0;5955:40:11::1;-1:-1:-1::0;;;;;;;;;;;5988:6:11;5955:10:::1;:40::i;:::-;-1:-1:-1::0;6005:56:11::1;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;6005:13:11::1;:56::i;:::-;6077;::::0;;-1:-1:-1;;;;;5773:15:30;;;5755:34;;5825:15;;;5820:2;5805:18;;5798:43;5877:15;;5857:18;;;5850:43;6077:56:11;;::::1;::::0;;;;5705:2:30;6077:56:11;;::::1;5276:864:::0;;;;;;;799:12999;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:127:30:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:30;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:30;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:30:o;991:177::-;1070:13;;-1:-1:-1;;;;;1112:31:30;;1102:42;;1092:70;;1158:1;1155;1148:12;1092:70;991:177;;;:::o;1173:943::-;1317:6;1325;1333;1341;1349;1357;1365;1418:3;1406:9;1397:7;1393:23;1389:33;1386:53;;;1435:1;1432;1425:12;1386:53;1462:16;;-1:-1:-1;;;;;1527:14:30;;;1524:34;;;1554:1;1551;1544:12;1524:34;1577:61;1630:7;1621:6;1610:9;1606:22;1577:61;:::i;:::-;1567:71;;1684:2;1673:9;1669:18;1663:25;1647:41;;1713:2;1703:8;1700:16;1697:36;;;1729:1;1726;1719:12;1697:36;;1752:63;1807:7;1796:8;1785:9;1781:24;1752:63;:::i;:::-;1742:73;;;1834:49;1879:2;1868:9;1864:18;1834:49;:::i;:::-;1824:59;;1902:49;1947:2;1936:9;1932:18;1902:49;:::i;:::-;1892:59;;1991:3;1980:9;1976:19;1970:26;1960:36;;2015:50;2060:3;2049:9;2045:19;2015:50;:::i;:::-;2005:60;;2105:3;2094:9;2090:19;2084:26;2074:36;;1173:943;;;;;;;;;;:::o;2926:380::-;3005:1;3001:12;;;;3048;;;3069:61;;3123:4;3115:6;3111:17;3101:27;;3069:61;3176:2;3168:6;3165:14;3145:18;3142:38;3139:161;;3222:10;3217:3;3213:20;3210:1;3203:31;3257:4;3254:1;3247:15;3285:4;3282:1;3275:15;3139:161;;2926:380;;;:::o;3437:545::-;3539:2;3534:3;3531:11;3528:448;;;3575:1;3600:5;3596:2;3589:17;3645:4;3641:2;3631:19;3715:2;3703:10;3699:19;3696:1;3692:27;3686:4;3682:38;3751:4;3739:10;3736:20;3733:47;;;-1:-1:-1;3774:4:30;3733:47;3829:2;3824:3;3820:12;3817:1;3813:20;3807:4;3803:31;3793:41;;3884:82;3902:2;3895:5;3892:13;3884:82;;;3947:17;;;3928:1;3917:13;3884:82;;;3888:3;;;3528:448;3437:545;;;:::o;4158:1352::-;4278:10;;-1:-1:-1;;;;;4300:30:30;;4297:56;;;4333:18;;:::i;:::-;4362:97;4452:6;4412:38;4444:4;4438:11;4412:38;:::i;:::-;4406:4;4362:97;:::i;:::-;4514:4;;4578:2;4567:14;;4595:1;4590:663;;;;5297:1;5314:6;5311:89;;;-1:-1:-1;5366:19:30;;;5360:26;5311:89;-1:-1:-1;;4115:1:30;4111:11;;;4107:24;4103:29;4093:40;4139:1;4135:11;;;4090:57;5413:81;;4560:944;;4590:663;3384:1;3377:14;;;3421:4;3408:18;;-1:-1:-1;;4626:20:30;;;4744:236;4758:7;4755:1;4752:14;4744:236;;;4847:19;;;4841:26;4826:42;;4939:27;;;;4907:1;4895:14;;;;4774:19;;4744:236;;;4748:3;5008:6;4999:7;4996:19;4993:201;;;5069:19;;;5063:26;-1:-1:-1;;5152:1:30;5148:14;;;5164:3;5144:24;5140:37;5136:42;5121:58;5106:74;;4993:201;-1:-1:-1;;;;;5240:1:30;5224:14;;;5220:22;5207:36;;-1:-1:-1;4158:1352:30:o;5515:384::-;799:12999:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033","sourceMap":"799:12999:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:44;;;;;;;;;;-1:-1:-1;1933:44:11;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1933:44:11;;;;;;-1:-1:-1;;;;;363:32:30;;;345:51;;333:2;318:18;1933:44:11;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;863:14:30;;856:22;838:41;;826:2;811:18;2565:202:0;698:187:30;1024:25:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1591:26::-;;;;;;;;;;;;;;;;;;;1792:25:30;;;1780:2;1765:18;1591:26:11;1646:177:30;8266:432:11;;;;;;;;;;-1:-1:-1;8266:432:11;;;;;:::i;:::-;;:::i;8704:444::-;;;;;;;;;;-1:-1:-1;8704:444:11;;;;;:::i;:::-;;:::i;3810:120:0:-;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;10779:2086:11;;;;;;;;;;-1:-1:-1;10779:2086:11;;;;;:::i;:::-;;:::i;4226:136:0:-;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;5328:245::-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;6704:278:11:-;;;;;;;;;;-1:-1:-1;6704:278:11;;;;;:::i;:::-;;:::i;997:21::-;;;;;;;;;;;;;:::i;1325:28::-;;;;;;;;;;;;;;;;3004:263:15;;;;;;;;;;-1:-1:-1;3004:263:15;;;;;:::i;:::-;;:::i;9612:113:11:-;;;;;;;;;;-1:-1:-1;9612:113:11;;;;;:::i;:::-;-1:-1:-1;;;;;9694:20:11;9671:4;9694:20;;;:10;:20;;;;;;:24;;;9612:113;907:35;;;;;;;;;;;;;;;144:20:15;;;;;;;;;;;;;;;;7525:108:11;;;;;;;;;;-1:-1:-1;7525:108:11;;;;;:::i;:::-;7594:13;:32;7525:108;243:45:15;;;;;;;;;;-1:-1:-1;243:45:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;1056:30:11;;;;;;;;;;;;;;;;1207:31;;;;;;;;;;;;;;;;9154:124;;;;;;;;;;-1:-1:-1;9154:124:11;;;;;:::i;:::-;9217:18;9254:17;;;:8;:17;;;;;;;;;9154:124;;;;;;;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;6458:106:11:-;;;;;;;;;;-1:-1:-1;6458:106:11;;;;;:::i;:::-;;:::i;9780:602::-;;;;;;:::i;:::-;;:::i;6266:90::-;;;;;;;;;;-1:-1:-1;6266:90:11;;;;;:::i;:::-;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;12924:801:11;;;;;;;;;;-1:-1:-1;12924:801:11;;;;;:::i;:::-;;:::i;7942:317::-;;;;;;;;;;-1:-1:-1;7942:317:11;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;9284:152:11:-;;;;;;;;;;-1:-1:-1;9284:152:11;;;;;:::i;:::-;;:::i;854:47::-;;;;;;;;;;;;;;;1843:28;;;;;;;;;;;;;;;;7754:145;;;;;;;;;;-1:-1:-1;7754:145:11;;;;;:::i;:::-;;:::i;2098:27::-;;;;;;;;;;;;;;;;7123:284;;;;;;;;;;-1:-1:-1;7123:284:11;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:9;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;1024:25:11:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8266:432::-;8332:36;;-1:-1:-1;;;8332:36:11;;;;;1792:25:30;;;8372:10:11;;-1:-1:-1;;;;;8340:10:11;8332:27;;;;1765:18:30;;8332:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8332:50:11;;8324:101;;;;-1:-1:-1;;;8324:101:11;;7256:2:30;8324:101:11;;;7238:21:30;7295:2;7275:18;;;7268:30;7334:34;7314:18;;;7307:62;-1:-1:-1;;;7385:18:30;;;7378:36;7431:19;;8324:101:11;;;;;;;;;8464:29;8443:17;;;;:8;:17;;;;;;;;:50;;;;;;;;:::i;:::-;;8435:90;;;;-1:-1:-1;;;8435:90:11;;7663:2:30;8435:90:11;;;7645:21:30;7702:2;7682:18;;;7675:30;7741:29;7721:18;;;7714:57;7788:18;;8435:90:11;7461:351:30;8435:90:11;8536:17;;;;:8;:17;;;;;:49;;-1:-1:-1;;8536:49:11;8556:29;8536:49;;;8595:11;:16;;8536:49;;:17;8595:16;;8536:49;;8595:16;:::i;:::-;;;;-1:-1:-1;;8627:64:11;;;;;;8652:4;;8659:10;;8671:7;;8680:10;;8627:64;:::i;:::-;;;;;;;;8266:432;:::o;8704:444::-;8772:36;;-1:-1:-1;;;8772:36:11;;;;;1792:25:30;;;8812:10:11;;-1:-1:-1;;;;;8780:10:11;8772:27;;;;1765:18:30;;8772:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8772:50:11;;8764:103;;;;-1:-1:-1;;;8764:103:11;;8742:2:30;8764:103:11;;;8724:21:30;8781:2;8761:18;;;8754:30;8820:34;8800:18;;;8793:62;-1:-1:-1;;;8871:18:30;;;8864:38;8919:19;;8764:103:11;8540:404:30;8764:103:11;8906:31;8885:17;;;:8;:17;;;;;;;;:52;;;;;;;;:::i;:::-;;8877:94;;;;-1:-1:-1;;;8877:94:11;;9151:2:30;8877:94:11;;;9133:21:30;9190:2;9170:18;;;9163:30;9229:31;9209:18;;;9202:59;9278:18;;8877:94:11;8949:353:30;8877:94:11;9002:31;8982:17;;;:8;:17;;;;;:51;;-1:-1:-1;;8982:51:11;;;9043:11;:16;;8982:51;;9002:31;9043:16;;8982:51;;9043:16;:::i;:::-;;;;-1:-1:-1;;9075:66:11;;;;;;9102:4;;9109:10;;9121:7;;9130:10;;9075:66;:::i;10779:2086::-;-1:-1:-1;;;;;9694:20:11;;10839:4;9694:20;;;:10;:20;;;;;;10855:78;;;;-1:-1:-1;;;10855:78:11;;;;;;;:::i;:::-;10987:29;10965:8;-1:-1:-1;;;;;10951:30:11;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;;;;;:::i;:::-;;10943:100;;;;-1:-1:-1;;;10943:100:11;;10340:2:30;10943:100:11;;;10322:21:30;10379:2;10359:18;;;10352:30;-1:-1:-1;;;10398:18:30;;;10391:52;10460:18;;10943:100:11;10138:346:30;10943:100:11;11075:8;-1:-1:-1;;;;;11061:33:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11100:1;11061:40;11053:81;;;;-1:-1:-1;;;11053:81:11;;10880:2:30;11053:81:11;;;10862:21:30;10919:2;10899:18;;;10892:30;10958;10938:18;;;10931:58;11006:18;;11053:81:11;10678:352:30;11053:81:11;11184:8;-1:-1:-1;;;;;11170:31:11;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11152:15;:51;11144:108;;;;-1:-1:-1;;;11144:108:11;;11237:2:30;11144:108:11;;;11219:21:30;11276:2;11256:18;;;11249:30;11315:34;11295:18;;;11288:62;-1:-1:-1;;;11366:18:30;;;11359:42;11418:19;;11144:108:11;11035:408:30;11144:108:11;11281:37;;-1:-1:-1;;;11281:37:11;;11263:15;11281:37;;;1792:25:30;;;11263:15:11;-1:-1:-1;;;;;11281:34:11;;;;;1765:18:30;;11281:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11347;;-1:-1:-1;;;11347:37:11;;11382:1;11347:37;;;1792:25:30;11263:55:11;;-1:-1:-1;11328:16:11;;-1:-1:-1;;;;;11347:34:11;;;;;1765:18:30;;11347:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11417;;-1:-1:-1;;;11417:37:11;;11452:1;11417:37;;;1792:25:30;11328:56:11;;-1:-1:-1;11394:20:11;;-1:-1:-1;;;;;11417:34:11;;;;;1765:18:30;;11417:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11394:60;-1:-1:-1;11464:18:11;11394:60;11485:18;11495:8;11485:7;:18;:::i;:::-;:33;;;;:::i;:::-;11464:54;;11529:28;11594:5;11575:15;;11561:11;;:29;;;;:::i;:::-;11560:39;;;;:::i;:::-;11529:70;;11609:29;11676:5;11656:16;;11642:11;;:30;;;;:::i;:::-;11641:40;;;;:::i;:::-;11609:72;;11692:18;11728:17;11813:21;11802:8;:32;11798:83;;;11866:4;11850:20;;11798:83;11941:20;11928:10;:33;11924:83;;;-1:-1:-1;11992:4:11;11924:83;12021:13;:29;;;;;12038:12;12021:29;12017:676;;;12110:39;;-1:-1:-1;;;12110:39:11;;12147:1;12110:39;;;12565:36:30;-1:-1:-1;;;;;12110:36:11;;;;;12538:18:30;;12110:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12203:19;12239:8;-1:-1:-1;;;;;12225:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12203:62;;12284:7;12279:290;12301:11;12297:1;:15;;;12279:290;;;12365:36;;-1:-1:-1;;;12365:36:11;;12595:4:30;12583:17;;12365:36:11;;;12565::30;12337:25:11;;-1:-1:-1;;;;;12365:33:11;;;;;12538:18:30;;12365:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12365:36:11;;;;;;;;;;;;:::i;:::-;12337:64;;12431:53;12443:3;:10;;;12455:3;:9;;;12466:3;:7;;;12475:3;:8;;;12431:11;:53::i;:::-;12419:9;;;:65;;;12502:52;;-1:-1:-1;;;12502:52:11;;14720:4:30;14708:17;;12502:52:11;;;14690:36:30;14742:18;;;14735:34;;;;-1:-1:-1;;;;;12502:38:11;;;;;14663:18:30;;12502:52:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12319:250;12314:3;;;;;:::i;:::-;;;;12279:290;;;;12052:527;12017:676;;;12643:39;;-1:-1:-1;;;12643:39:11;;12680:1;12643:39;;;12565:36:30;-1:-1:-1;;;;;12643:36:11;;;;;12538:18:30;;12643:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12017:676;12708:103;;;15431:14:30;;15424:22;15406:41;;15490:14;;15483:22;15478:2;15463:18;;15456:50;15522:18;;;15515:34;;;15580:2;15565:18;;15558:34;;;15623:3;15608:19;;15601:35;;;12708:103:11;;15393:3:30;15378:19;12708:103:11;;;;;;;12829:12;:29;;;;;12845:13;12829:29;12822:36;10779:2086;-1:-1:-1;;;;;;;;;;10779:2086:11:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:6;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;6704:278:11:-;6807:5;6785:18;:27;;6777:78;;;;-1:-1:-1;;;6777:78:11;;;;;;;:::i;:::-;6894:1;6873:18;:22;6865:63;;;;-1:-1:-1;;;6865:63:11;;16256:2:30;6865:63:11;;;16238:21:30;16295:2;16275:18;;;16268:30;16334;16314:18;;;16307:58;16382:18;;6865:63:11;16054:352:30;6865:63:11;6939:15;:36;6704:278::o;997:21::-;;;;;;;:::i;3004:263:15:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:15;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:15:o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;6458:106:11:-;6529:11;:28;6543:14;6529:11;:28;:::i;:::-;;6458:106;:::o;9780:602::-;9856:7;9896:12;;9883:9;:25;9875:77;;;;-1:-1:-1;;;9875:77:11;;19445:2:30;9875:77:11;;;19427:21:30;19484:2;19464:18;;;19457:30;19523:34;19503:18;;;19496:62;-1:-1:-1;;;19574:18:30;;;19567:37;19621:19;;9875:77:11;19243:403:30;9875:77:11;10033:106;;-1:-1:-1;;;10033:106:11;;10018:12;;-1:-1:-1;;;;;10054:22:11;10033:64;;;;:106;;10098:13;;10121:4;;10128:10;;10033:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10018:121;;10190:1;10173:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;10220:13:11;;;-1:-1:-1;;;;;10201:16:11;;;;;;:10;:16;;;;;;;;:32;;;10243:24;;;:9;:24;;;;;:31;;-1:-1:-1;;;;;;10243:31:11;;;;;;10327:13;;10290:63;;;;;;10314:4;;10212;;10342:10;;10290:63;:::i;:::-;;;;;;;;10371:4;9780:602;-1:-1:-1;;9780:602:11:o;6266:90::-;6329:7;:20;6339:10;6329:7;:20;:::i;12924:801::-;-1:-1:-1;;;;;9694:20:11;;9671:4;9694:20;;;:10;:20;;;;;;12984:78;;;;-1:-1:-1;;;12984:78:11;;;;;;;:::i;:::-;13116:27;13094:8;-1:-1:-1;;;;;13080:30:11;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;;;;;;:::i;:::-;;13072:98;;;;-1:-1:-1;;;13072:98:11;;10340:2:30;13072:98:11;;;10322:21:30;10379:2;10359:18;;;10352:30;-1:-1:-1;;;10398:18:30;;;10391:52;10460:18;;13072:98:11;10138:346:30;13072:98:11;13231:1;13202:8;-1:-1:-1;;;;;13188:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;13180:78;;;;-1:-1:-1;;;13180:78:11;;20276:2:30;13180:78:11;;;20258:21:30;20315:2;20295:18;;;20288:30;-1:-1:-1;;;20334:18:30;;;20327:51;20395:18;;13180:78:11;20074:345:30;13180:78:11;13311:39;;-1:-1:-1;;;13311:39:11;;13348:1;13311:39;;;12565:36:30;-1:-1:-1;;;;;13311:36:11;;;;;12538:18:30;;13311:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13395:19;13431:8;-1:-1:-1;;;;;13417:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13395:62;;13472:7;13467:210;13489:11;13485:1;:15;;;13467:210;;;13549:36;;-1:-1:-1;;;13549:36:11;;12595:4:30;12583:17;;13549:36:11;;;12565::30;13521:25:11;;-1:-1:-1;;;;;13549:33:11;;;;;12538:18:30;;13549:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13549:36:11;;;;;;;;;;;;:::i;:::-;13521:64;;13599:67;13614:3;:10;;;13626:3;:9;;;13637:3;:7;;;13646:3;:8;;;13656:3;:9;;;13599:14;:67::i;:::-;;13507:170;13502:3;;;;;:::i;:::-;;;;13467:210;;;-1:-1:-1;13692:26:11;;-1:-1:-1;;;;;363:32:30;;345:51;;13692:26:11;;333:2:30;318:18;13692:26:11;;;;;;;;12974:751;12924:801;:::o;7942:317::-;280:23:27;2464:16:0;2475:4;2464:10;:16::i;:::-;8058:31:11::1;8037:17:::0;;;:8:::1;:17;::::0;;;;;::::1;;:52;::::0;::::1;;;;;;:::i;:::-;;8029:101;;;::::0;-1:-1:-1;;;8029:101:11;;20825:2:30;8029:101:11::1;::::0;::::1;20807:21:30::0;20864:2;20844:18;;;20837:30;20903:34;20883:18;;;20876:62;-1:-1:-1;;;20954:18:30;;;20947:34;20998:19;;8029:101:11::1;20623:400:30::0;8029:101:11::1;8141:17;::::0;;;:8:::1;:17;::::0;;;;:46;;8161:26:::1;::::0;8141:17;-1:-1:-1;;8141:46:11::1;8161:26:::0;;8141:46:::1;;::::0;;-1:-1:-1;8203:49:11::1;::::0;;8225:4:::1;21268:34:30::0;;-1:-1:-1;;;;;8232:10:11::1;21338:15:30::0;21333:2;21318:18;;21311:43;21370:18;;;21363:34;;;8203:49:11::1;::::0;21218:2:30;21203:18;8203:49:11::1;21028:375:30::0;4642:138:0;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;9284:152:11:-:0;9360:4;9423:6;-1:-1:-1;;;;;9383:46:11;9391:10;-1:-1:-1;;;;;9383:27:11;;9411:7;9383:36;;;;;;;;;;;;;1792:25:30;;1780:2;1765:18;;1646:177;9383:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9383:46:11;;;9284:152;-1:-1:-1;;;9284:152:11:o;7754:145::-;7826:1;7815:8;:12;7807:56;;;;-1:-1:-1;;;7807:56:11;;21610:2:30;7807:56:11;;;21592:21:30;21649:2;21629:18;;;21622:30;21688:33;21668:18;;;21661:61;21739:18;;7807:56:11;21408:355:30;7807:56:11;7873:19;7883:8;3429:5:15;:16;3373:79;7873:19:11;7754:145;:::o;7123:284::-;7229:5;7206:19;:28;;7198:79;;;;-1:-1:-1;;;7198:79:11;;;;;;;:::i;:::-;7317:1;7295:19;:23;7287:64;;;;-1:-1:-1;;;7287:64:11;;16256:2:30;7287:64:11;;;16238:21:30;16295:2;16275:18;;;16268:30;16334;16314:18;;;16307:58;16382:18;;7287:64:11;16054:352:30;7287:64:11;7362:16;:38;7123:284::o;3686:388:15:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:15;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;:13;:22;;;;;;:29;;-1:-1:-1;;3945:29:15;3970:4;3945:29;;;3881:54;-1:-1:-1;3990:54:15;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:15;3686:388;-1:-1:-1;;;;;3686:388:15:o;3199:103:0:-;3265:30;3276:4;735:10:6;3265::0;:30::i;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:6;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;5008:907:15;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:15;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:15;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:15;;;;;1792:25:30;;;1765:18;;5277:24:15;1646:177:30;5241:60:15;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:15;;;;;22670:25:30;;;5372:15:15;22711:18:30;;;22704:34;22754:18;;;22747:34;;;22643:18;;5348:47:15;22468:319:30;5311:84:15;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:15;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:15;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:15;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:15;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:15:o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;23959:32:30;;3565:47:0;;;23941:51:30;24008:18;;;24001:34;;;23914:18;;3565:47:0;23767:274:30;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:30;;14:180;-1:-1:-1;14:180:30:o;407:286::-;465:6;518:2;506:9;497:7;493:23;489:32;486:52;;;534:1;531;524:12;486:52;560:23;;-1:-1:-1;;;;;;612:32:30;;602:43;;592:71;;659:1;656;649:12;592:71;682:5;407:286;-1:-1:-1;;;407:286:30:o;890:250::-;975:1;985:113;999:6;996:1;993:13;985:113;;;1075:11;;;1069:18;1056:11;;;1049:39;1021:2;1014:10;985:113;;;-1:-1:-1;;1132:1:30;1114:16;;1107:27;890:250::o;1145:271::-;1187:3;1225:5;1219:12;1252:6;1247:3;1240:19;1268:76;1337:6;1330:4;1325:3;1321:14;1314:4;1307:5;1303:16;1268:76;:::i;:::-;1398:2;1377:15;-1:-1:-1;;1373:29:30;1364:39;;;;1405:4;1360:50;;1145:271;-1:-1:-1;;1145:271:30:o;1421:220::-;1570:2;1559:9;1552:21;1533:4;1590:45;1631:2;1620:9;1616:18;1608:6;1590:45;:::i;2195:131::-;-1:-1:-1;;;;;2270:31:30;;2260:42;;2250:70;;2316:1;2313;2306:12;2331:247;2390:6;2443:2;2431:9;2422:7;2418:23;2414:32;2411:52;;;2459:1;2456;2449:12;2411:52;2498:9;2485:23;2517:31;2542:5;2517:31;:::i;2583:315::-;2651:6;2659;2712:2;2700:9;2691:7;2687:23;2683:32;2680:52;;;2728:1;2725;2718:12;2680:52;2764:9;2751:23;2741:33;;2824:2;2813:9;2809:18;2796:32;2837:31;2862:5;2837:31;:::i;:::-;2887:5;2877:15;;;2583:315;;;;;:::o;2903:127::-;2964:10;2959:3;2955:20;2952:1;2945:31;2995:4;2992:1;2985:15;3019:4;3016:1;3009:15;3035:253;3107:2;3101:9;3149:4;3137:17;;3184:18;3169:34;;3205:22;;;3166:62;3163:88;;;3231:18;;:::i;:::-;3267:2;3260:22;3035:253;:::o;3293:275::-;3364:2;3358:9;3429:2;3410:13;;-1:-1:-1;;3406:27:30;3394:40;;3464:18;3449:34;;3485:22;;;3446:62;3443:88;;;3511:18;;:::i;:::-;3547:2;3540:22;3293:275;;-1:-1:-1;3293:275:30:o;3573:187::-;3622:4;3655:18;3647:6;3644:30;3641:56;;;3677:18;;:::i;:::-;-1:-1:-1;3743:2:30;3722:15;-1:-1:-1;;3718:29:30;3749:4;3714:40;;3573:187::o;3765:338::-;3830:5;3859:53;3875:36;3904:6;3875:36;:::i;:::-;3859:53;:::i;:::-;3850:62;;3935:6;3928:5;3921:21;3975:3;3966:6;3961:3;3957:16;3954:25;3951:45;;;3992:1;3989;3982:12;3951:45;4041:6;4036:3;4029:4;4022:5;4018:16;4005:43;4095:1;4088:4;4079:6;4072:5;4068:18;4064:29;4057:40;3765:338;;;;;:::o;4108:222::-;4151:5;4204:3;4197:4;4189:6;4185:17;4181:27;4171:55;;4222:1;4219;4212:12;4171:55;4244:80;4320:3;4311:6;4298:20;4291:4;4283:6;4279:17;4244:80;:::i;4335:944::-;4449:6;4457;4465;4473;4481;4534:3;4522:9;4513:7;4509:23;4505:33;4502:53;;;4551:1;4548;4541:12;4502:53;4590:9;4577:23;4609:31;4634:5;4609:31;:::i;:::-;4659:5;-1:-1:-1;4711:2:30;4696:18;;4683:32;;-1:-1:-1;4766:2:30;4751:18;;4738:32;4789:18;4819:14;;;4816:34;;;4846:1;4843;4836:12;4816:34;4869:50;4911:7;4902:6;4891:9;4887:22;4869:50;:::i;:::-;4859:60;;4972:2;4961:9;4957:18;4944:32;4928:48;;5001:2;4991:8;4988:16;4985:36;;;5017:1;5014;5007:12;4985:36;-1:-1:-1;5040:24:30;;5095:4;5087:13;;5083:27;-1:-1:-1;5073:55:30;;5124:1;5121;5114:12;5073:55;5147:74;5213:7;5208:2;5195:16;5190:2;5186;5182:11;5147:74;:::i;:::-;4335:944;;;;-1:-1:-1;4335:944:30;;5268:3;5253:19;5240:33;;4335:944;-1:-1:-1;;;4335:944:30:o;5284:127::-;5345:10;5340:3;5336:20;5333:1;5326:31;5376:4;5373:1;5366:15;5400:4;5397:1;5390:15;5416:345;5565:2;5550:18;;5598:1;5587:13;;5577:144;;5643:10;5638:3;5634:20;5631:1;5624:31;5678:4;5675:1;5668:15;5706:4;5703:1;5696:15;5577:144;5730:25;;;5416:345;:::o;5766:322::-;5835:6;5888:2;5876:9;5867:7;5863:23;5859:32;5856:52;;;5904:1;5901;5894:12;5856:52;5944:9;5931:23;5977:18;5969:6;5966:30;5963:50;;;6009:1;6006;5999:12;5963:50;6032;6074:7;6065:6;6054:9;6050:22;6032:50;:::i;:::-;6022:60;5766:322;-1:-1:-1;;;;5766:322:30:o;6413:380::-;6492:1;6488:12;;;;6535;;;6556:61;;6610:4;6602:6;6598:17;6588:27;;6556:61;6663:2;6655:6;6652:14;6632:18;6629:38;6626:161;;6709:10;6704:3;6700:20;6697:1;6690:31;6744:4;6741:1;6734:15;6772:4;6769:1;6762:15;6626:161;;6413:380;;;:::o;6798:251::-;6868:6;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6969:9;6963:16;6988:31;7013:5;6988:31;:::i;7817:127::-;7878:10;7873:3;7869:20;7866:1;7859:31;7909:4;7906:1;7899:15;7933:4;7930:1;7923:15;7949:125;8014:9;;;8035:10;;;8032:36;;;8048:18;;:::i;8079:456::-;-1:-1:-1;;;;;8366:15:30;;;8348:34;;8418:15;;;8413:2;8398:18;;8391:43;8465:2;8450:18;;8443:34;;;;8513:15;;;8508:2;8493:18;;8486:43;8297:3;8282:19;;8079:456::o;9307:128::-;9374:9;;;9395:11;;;9392:37;;;9409:18;;:::i;9440:409::-;9642:2;9624:21;;;9681:2;9661:18;;;9654:30;9720:34;9715:2;9700:18;;9693:62;-1:-1:-1;;;9786:2:30;9771:18;;9764:43;9839:3;9824:19;;9440:409::o;9854:279::-;9943:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:52;;;10012:1;10009;10002:12;9964:52;10044:9;10038:16;10083:1;10076:5;10073:12;10063:40;;10099:1;10096;10089:12;10489:184;10559:6;10612:2;10600:9;10591:7;10587:23;10583:32;10580:52;;;10628:1;10625;10618:12;10580:52;-1:-1:-1;10651:16:30;;10489:184;-1:-1:-1;10489:184:30:o;12018:168::-;12091:9;;;12122;;12139:15;;;12133:22;;12119:37;12109:71;;12160:18;;:::i;12191:217::-;12231:1;12257;12247:132;;12301:10;12296:3;12292:20;12289:1;12282:31;12336:4;12333:1;12326:15;12364:4;12361:1;12354:15;12247:132;-1:-1:-1;12393:9:30;;12191:217::o;12803:322::-;12879:5;12908:53;12924:36;12953:6;12924:36;:::i;12908:53::-;12899:62;;12984:6;12977:5;12970:21;13024:3;13015:6;13010:3;13006:16;13003:25;13000:45;;;13041:1;13038;13031:12;13000:45;13054:65;13112:6;13105:4;13098:5;13094:16;13089:3;13054:65;:::i;13130:236::-;13183:5;13236:3;13229:4;13221:6;13217:17;13213:27;13203:55;;13254:1;13251;13244:12;13203:55;13276:84;13356:3;13347:6;13341:13;13334:4;13326:6;13322:17;13276:84;:::i;13371:1142::-;13465:6;13518:2;13506:9;13497:7;13493:23;13489:32;13486:52;;;13534:1;13531;13524:12;13486:52;13567:9;13561:16;13596:18;13637:2;13629:6;13626:14;13623:34;;;13653:1;13650;13643:12;13623:34;13676:22;;;;13732:4;13714:16;;;13710:27;13707:47;;;13750:1;13747;13740:12;13707:47;13776:22;;:::i;:::-;13828:2;13822:9;13840:33;13865:7;13840:33;:::i;:::-;13882:22;;13950:2;13942:11;;;13936:18;13920:14;;;13913:42;13994:2;13986:11;;13980:18;14010:16;;;14007:36;;;14039:1;14036;14029:12;14007:36;14062:17;;14110:4;14102:13;;14098:27;-1:-1:-1;14088:55:30;;14139:1;14136;14129:12;14088:55;14175:78;14245:7;14240:2;14234:9;14229:2;14225;14221:11;14175:78;:::i;:::-;14170:2;14163:5;14159:14;14152:102;;14293:2;14289;14285:11;14279:18;14322:2;14312:8;14309:16;14306:36;;;14338:1;14335;14328:12;14306:36;14374:55;14421:7;14410:8;14406:2;14402:17;14374:55;:::i;:::-;14369:2;14362:5;14358:14;14351:79;;14477:3;14473:2;14469:12;14463:19;14457:3;14450:5;14446:15;14439:44;14502:5;14492:15;;;;;13371:1142;;;;:::o;14780:175::-;14817:3;14861:4;14854:5;14850:16;14890:4;14881:7;14878:17;14875:43;;14898:18;;:::i;:::-;14947:1;14934:15;;14780:175;-1:-1:-1;;14780:175:30:o;15647:402::-;15849:2;15831:21;;;15888:2;15868:18;;;15861:30;15927:34;15922:2;15907:18;;15900:62;-1:-1:-1;;;15993:2:30;15978:18;;15971:36;16039:3;16024:19;;15647:402::o;16411:623::-;16719:1;16715;16710:3;16706:11;16702:19;16694:6;16690:32;16679:9;16672:51;16759:6;16754:2;16743:9;16739:18;16732:34;16802:3;16797:2;16786:9;16782:18;16775:31;16653:4;16829:46;16870:3;16859:9;16855:19;16847:6;16829:46;:::i;:::-;16923:9;16915:6;16911:22;16906:2;16895:9;16891:18;16884:50;16951:33;16977:6;16969;16951:33;:::i;:::-;16943:41;;;17021:6;17015:3;17004:9;17000:19;16993:35;16411:623;;;;;;;;:::o;17165:545::-;17267:2;17262:3;17259:11;17256:448;;;17303:1;17328:5;17324:2;17317:17;17373:4;17369:2;17359:19;17443:2;17431:10;17427:19;17424:1;17420:27;17414:4;17410:38;17479:4;17467:10;17464:20;17461:47;;;-1:-1:-1;17502:4:30;17461:47;17557:2;17552:3;17548:12;17545:1;17541:20;17535:4;17531:31;17521:41;;17612:82;17630:2;17623:5;17620:13;17612:82;;;17675:17;;;17656:1;17645:13;17612:82;;;17616:3;;;17165:545;;;:::o;17886:1352::-;18012:3;18006:10;18039:18;18031:6;18028:30;18025:56;;;18061:18;;:::i;:::-;18090:97;18180:6;18140:38;18172:4;18166:11;18140:38;:::i;:::-;18134:4;18090:97;:::i;:::-;18242:4;;18306:2;18295:14;;18323:1;18318:663;;;;19025:1;19042:6;19039:89;;;-1:-1:-1;19094:19:30;;;19088:26;19039:89;-1:-1:-1;;17843:1:30;17839:11;;;17835:24;17831:29;17821:40;17867:1;17863:11;;;17818:57;19141:81;;18288:944;;18318:663;17112:1;17105:14;;;17149:4;17136:18;;-1:-1:-1;;18354:20:30;;;18472:236;18486:7;18483:1;18480:14;18472:236;;;18575:19;;;18569:26;18554:42;;18667:27;;;;18635:1;18623:14;;;;18502:19;;18472:236;;;18476:3;18736:6;18727:7;18724:19;18721:201;;;18797:19;;;18791:26;-1:-1:-1;;18880:1:30;18876:14;;;18892:3;18872:24;18868:37;18864:42;18849:58;18834:74;;18721:201;-1:-1:-1;;;;;18968:1:30;18952:14;;;18948:22;18935:36;;-1:-1:-1;17886:1352:30:o;19651:418::-;19856:2;19845:9;19838:21;19819:4;19876:45;19917:2;19906:9;19902:18;19894:6;19876:45;:::i;:::-;-1:-1:-1;;;;;19995:15:30;;;19990:2;19975:18;;19968:43;20047:15;;;;20042:2;20027:18;;;20020:43;19868:53;19651:418;-1:-1:-1;;19651:418:30:o;21768:695::-;22075:6;22064:9;22057:25;22147:1;22143;22138:3;22134:11;22130:19;22122:6;22118:32;22113:2;22102:9;22098:18;22091:60;22187:6;22182:2;22171:9;22167:18;22160:34;22230:3;22225:2;22214:9;22210:18;22203:31;22038:4;22257:46;22298:3;22287:9;22283:19;22275:6;22257:46;:::i;:::-;22352:9;22344:6;22340:22;22334:3;22323:9;22319:19;22312:51;22380:33;22406:6;22398;22380:33;:::i;:::-;22372:41;;;22450:6;22444:3;22433:9;22429:19;22422:35;21768:695;;;;;;;;;:::o;22792:384::-;-1:-1:-1;;;;;;22977:33:30;;22965:46;;23034:13;;22947:3;;23056:74;23034:13;23119:1;23110:11;;23103:4;23091:17;;23056:74;:::i;:::-;23150:16;;;;23168:1;23146:24;;22792:384;-1:-1:-1;;;22792:384:30:o;23181:287::-;23310:3;23348:6;23342:13;23364:66;23423:6;23418:3;23411:4;23403:6;23399:17;23364:66;:::i;:::-;23446:16;;;;;23181:287;-1:-1:-1;;23181:287:30:o;23473:289::-;23648:6;23637:9;23630:25;23691:2;23686;23675:9;23671:18;23664:30;23611:4;23711:45;23752:2;23741:9;23737:18;23729:6;23711:45;:::i","linkReferences":{},"immutableReferences":{"1002":[{"start":1591,"length":32},{"start":5105,"length":32}],"1004":[{"start":1086,"length":32},{"start":1955,"length":32},{"start":2372,"length":32},{"start":2456,"length":32},{"start":2865,"length":32},{"start":6431,"length":32},{"start":6565,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","daoMetadata()":"0787e15c","daoName()":"48976936","delay()":"6a42b8f8","draftProposal(string)":"9f367e08","evaluateProposal(address)":"2df57dd6","executeProposal(address)":"a67a03ab","getMemberStatus(uint256)":"7d0d719b","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","inviteMember(uint256)":"bc5862a4","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","loadedActions(bytes32)":"6e8c7ab9","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCost()":"e664f3b2","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","registerMember(uint256)":"22e994f3","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setDelay(uint256)":"e177246e","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8","supportsInterface(bytes4)":"01ffc9a7","unregisterMember(uint256)":"23dd523d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"daoName_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"daoMetadata_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nftAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposalFactoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"DAOCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MemberInvited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalEvaluated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle\",\"type\":\"string\"}],\"name\":\"draftProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"evaluateProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"enum Enums.MemberStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"inviteMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"registerMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Craig Branscom\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"DAOCreated(address,address,address)\":{\"params\":{\"admin\":\"address set with initial admin role\",\"nftAddress\":\"address of nft contract linked to dao\",\"proposalFactoryAddress\":\"address of proposal factory used by dao\"}},\"MemberInvited(address,address,uint256)\":{\"params\":{\"daoAddress\":\"address of dao where member was invited\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberRegistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was registered\",\"memberAddress\":\"address registering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberUnregistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was unregistered\",\"memberAddress\":\"address unregistering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being unregistered\"}},\"ProposalCreated(address,address,uint256,address)\":{\"params\":{\"creator\":\"address of proposal creator\",\"daoAddress\":\"address of dao\",\"proposal\":\"address of proposal contract\",\"proposalId\":\"unique proposal id assigned by dao\"}},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"ProposalExecuted(address)\":{\"params\":{\"proposal\":\"address of proposal that was executed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"admin_\":\"address that will be assigned the DAO_ADMIN role\",\"daoMetadata_\":\"metadata link for the dao\",\"daoName_\":\"name of the dao\",\"delay_\":\"amount of time that must elapse before a loaded action can be executed (in seconds)\",\"nftAddress_\":\"address of ERC721 contract representing voting rights\",\"proposalCost_\":\"required cost to draft a proposal (in wei)\",\"proposalFactoryAddress_\":\"address of OGREProposalFactory contract\"}},\"draftProposal(string)\":{\"details\":\"craft a new proposal\"},\"evaluateProposal(address)\":{\"details\":\"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.\",\"params\":{\"proposal\":\"address of proposal contract to evaluate\"},\"returns\":{\"_0\":\"bool true if proposal passed, false if failed\"}},\"executeProposal(address)\":{\"details\":\"executes readied actions\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}},\"isProposal(address)\":{\"details\":\"returns true if address is a proposal contract created by dao.\",\"params\":{\"proposal\":\"address to check\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDAOMetadata(string)\":{\"details\":\"sets new dao metadata\",\"params\":{\"newDAOMetadata\":\"new dao metadata\"}},\"setDAOName(string)\":{\"details\":\"sets new dao name\",\"params\":{\"newDAOName\":\"new dao name\"}},\"setDelay(uint256)\":{\"details\":\"sets a new delay for action hopper\",\"params\":{\"newDelay\":\"new delay value (in seconds)\"}},\"setMinVotePeriod(uint256)\":{\"details\":\"sets new min vote period for dao\",\"params\":{\"newMinVotePeriod\":\"min time in seconds\"}},\"setQuorumThreshold(uint256)\":{\"details\":\"sets new quorum threshold for dao. \",\"params\":{\"newQuorumThreshold\":\"quorum percentage (e.g. 555 = 5.55%)\"}},\"setSupportThreshold(uint256)\":{\"details\":\"sets new support threshold for dao\",\"params\":{\"newSupportThreshold\":\"support percentage (e.g. 555 = 5.55%)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine DAO Contract\",\"version\":1},\"userdoc\":{\"events\":{\"DAOCreated(address,address,address)\":{\"notice\":\"logs a successful dao creation\"},\"MemberInvited(address,address,uint256)\":{\"notice\":\"logs a successful member invited\"},\"MemberRegistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member registration\"},\"MemberUnregistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member unregistration\"},\"ProposalCreated(address,address,uint256,address)\":{\"notice\":\"logs a proposal creation\"},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"ProposalExecuted(address)\":{\"notice\":\"logs successful execution of all proposal actions\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREDAO.sol\":\"OGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0\",\"dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"daoName_","type":"string"},{"internalType":"string","name":"daoMetadata_","type":"string"},{"internalType":"address","name":"nftAddress_","type":"address"},{"internalType":"address","name":"proposalFactoryAddress_","type":"address"},{"internalType":"uint256","name":"proposalCost_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"address","name":"proposalFactoryAddress","type":"address","indexed":false},{"internalType":"address","name":"admin","type":"address","indexed":false}],"type":"event","name":"DAOCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"MemberInvited","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"proposal","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalEvaluated","anonymous":false},{"inputs":[{"internalType":"address","name":"proposal","type":"address","indexed":false}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"proposalTitle","type":"string"}],"stateMutability":"payable","type":"function","name":"draftProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"evaluateProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"enum Enums.MemberStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"inviteMember"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerMember"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDelay"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"admin_":"address that will be assigned the DAO_ADMIN role","daoMetadata_":"metadata link for the dao","daoName_":"name of the dao","delay_":"amount of time that must elapse before a loaded action can be executed (in seconds)","nftAddress_":"address of ERC721 contract representing voting rights","proposalCost_":"required cost to draft a proposal (in wei)","proposalFactoryAddress_":"address of OGREProposalFactory contract"}},"draftProposal(string)":{"details":"craft a new proposal"},"evaluateProposal(address)":{"details":"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.","params":{"proposal":"address of proposal contract to evaluate"},"returns":{"_0":"bool true if proposal passed, false if failed"}},"executeProposal(address)":{"details":"executes readied actions"},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}},"isProposal(address)":{"details":"returns true if address is a proposal contract created by dao.","params":{"proposal":"address to check"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDAOMetadata(string)":{"details":"sets new dao metadata","params":{"newDAOMetadata":"new dao metadata"}},"setDAOName(string)":{"details":"sets new dao name","params":{"newDAOName":"new dao name"}},"setDelay(uint256)":{"details":"sets a new delay for action hopper","params":{"newDelay":"new delay value (in seconds)"}},"setMinVotePeriod(uint256)":{"details":"sets new min vote period for dao","params":{"newMinVotePeriod":"min time in seconds"}},"setQuorumThreshold(uint256)":{"details":"sets new quorum threshold for dao. ","params":{"newQuorumThreshold":"quorum percentage (e.g. 555 = 5.55%)"}},"setSupportThreshold(uint256)":{"details":"sets new support threshold for dao","params":{"newSupportThreshold":"support percentage (e.g. 555 = 5.55%)"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREDAO.sol":"OGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d","urls":["bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0","dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":11} \ No newline at end of file diff --git a/out/OGREDAOFactory.sol/OGREDAOFactory.json b/out/OGREDAOFactory.sol/OGREDAOFactory.json index 7efd3b5..14a5874 100644 --- a/out/OGREDAOFactory.sol/OGREDAOFactory.json +++ b/out/OGREDAOFactory.sol/OGREDAOFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"proposalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"admin","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DAOFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527faab2cc7f2123749388ff257fd1a3f45420dc9ba35a1d2feafcb9c44d63a4887a9060200160405180910390a161323c806100505f395ff3fe608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000208565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000139565b620000b19796959493929190620002fc565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e191906200035a565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a198975050505050505050565b612e86806200038183390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200016b575f80fd5b813567ffffffffffffffff8082111562000189576200018962000147565b604051601f8301601f19908116603f01168101908282118183101715620001b457620001b462000147565b81604052838152866020858801011115620001cd575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b038116811462000203575f80fd5b919050565b5f805f805f805f60e0888a0312156200021f575f80fd5b873567ffffffffffffffff8082111562000237575f80fd5b620002458b838c016200015b565b985060208a01359150808211156200025b575f80fd5b506200026a8a828b016200015b565b9650506200027b60408901620001ec565b94506200028b60608901620001ec565b935060808801359250620002a260a08901620001ec565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002dd57602081850181015186830182015201620002bf565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200031060e083018a620002b7565b828103602084015262000324818a620002b7565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037a57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa2646970667358221220aa8c98b14d7edf3516838a9c4b1328c635fb729200914bc9d60cfef6160b3eb664736f6c63430008140033","sourceMap":"173:605:57:-:0;;;283:65;;;;;;;;;-1:-1:-1;312:29:57;;330:10;160:51:76;;312:29:57;;148:2:76;133:18;312:29:57;;;;;;;173:605;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000208565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000139565b620000b19796959493929190620002fc565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e191906200035a565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a198975050505050505050565b612e86806200038183390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200016b575f80fd5b813567ffffffffffffffff8082111562000189576200018962000147565b604051601f8301601f19908116603f01168101908282118183101715620001b457620001b462000147565b81604052838152866020858801011115620001cd575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b038116811462000203575f80fd5b919050565b5f805f805f805f60e0888a0312156200021f575f80fd5b873567ffffffffffffffff8082111562000237575f80fd5b620002458b838c016200015b565b985060208a01359150808211156200025b575f80fd5b506200026a8a828b016200015b565b9650506200027b60408901620001ec565b94506200028b60608901620001ec565b935060808801359250620002a260a08901620001ec565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002dd57602081850181015186830182015201620002bf565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200031060e083018a620002b7565b828103602084015262000324818a620002b7565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037a57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa2646970667358221220aa8c98b14d7edf3516838a9c4b1328c635fb729200914bc9d60cfef6160b3eb664736f6c63430008140033","sourceMap":"173:605:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;354:422:57;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2304:32:76;;;2286:51;;2274:2;2259:18;354:422:57;2140:203:76;354:422:57;528:7;547:11;573:4;579:8;589:3;594:15;611:12;625:5;632;561:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;547:91;;667:1;648:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;683:57:57;;;-1:-1:-1;;;;;4074:15:76;;4056:34;;722:4:57;4121:2:76;4106:18;;4099:43;729:10:57;4158:18:76;;;4151:43;683:57:57;;;;;;;4006:2:76;683:57:57;;;765:3;354:422;-1:-1:-1;;;;;;;;354:422:57:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:173::-;1120:20;;-1:-1:-1;;;;;1169:31:76;;1159:42;;1149:70;;1215:1;1212;1205:12;1149:70;1052:173;;;:::o;1230:905::-;1363:6;1371;1379;1387;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1521:9;1508:23;1550:18;1591:2;1583:6;1580:14;1577:34;;;1607:1;1604;1597:12;1577:34;1630:50;1672:7;1663:6;1652:9;1648:22;1630:50;:::i;:::-;1620:60;;1733:2;1722:9;1718:18;1705:32;1689:48;;1762:2;1752:8;1749:16;1746:36;;;1778:1;1775;1768:12;1746:36;;1801:52;1845:7;1834:8;1823:9;1819:24;1801:52;:::i;:::-;1791:62;;;1872:38;1906:2;1895:9;1891:18;1872:38;:::i;:::-;1862:48;;1929:38;1963:2;1952:9;1948:18;1929:38;:::i;:::-;1919:48;;2014:3;2003:9;1999:19;1986:33;1976:43;;2038:39;2072:3;2061:9;2057:19;2038:39;:::i;:::-;2028:49;;2124:3;2113:9;2109:19;2096:33;2086:43;;1230:905;;;;;;;;;;:::o;2348:423::-;2390:3;2428:5;2422:12;2455:6;2450:3;2443:19;2480:1;2490:162;2504:6;2501:1;2498:13;2490:162;;;2566:4;2622:13;;;2618:22;;2612:29;2594:11;;;2590:20;;2583:59;2519:12;2490:162;;;2494:3;2697:1;2690:4;2681:6;2676:3;2672:16;2668:27;2661:38;2760:4;2753:2;2749:7;2744:2;2736:6;2732:15;2728:29;2723:3;2719:39;2715:50;2708:57;;;2348:423;;;;:::o;2776:808::-;3113:3;3102:9;3095:22;3076:4;3140:46;3181:3;3170:9;3166:19;3158:6;3140:46;:::i;:::-;3234:9;3226:6;3222:22;3217:2;3206:9;3202:18;3195:50;3262:33;3288:6;3280;3262:33;:::i;:::-;-1:-1:-1;;;;;3369:15:76;;;3364:2;3349:18;;3342:43;3421:15;;;3416:2;3401:18;;3394:43;-1:-1:-1;;3468:3:76;3453:19;;3446:35;;;;3518:15;;3322:3;3497:19;;3490:44;3565:3;3550:19;3543:35;;;;3254:41;2776:808;-1:-1:-1;;2776:808:76:o;3589:222::-;3654:9;;;3675:10;;;3672:133;;;3727:10;3722:3;3718:20;3715:1;3708:31;3762:4;3759:1;3752:15;3790:4;3787:1;3780:15;3672:133;3589:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"DAOFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREDAOFactory.sol\":\"OGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREDAOFactory.sol\":{\"keccak256\":\"0x5edffa876170ab79abee169335f86737ef94c0ed00bb35ecb417c6a359026e3c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9e0b002858d0f19e87c9cf53613d53e70a5b5668bfd7d56ad71b967121b0137c\",\"dweb:/ipfs/QmPx18DmbNeaynkRGawDY65zvAVec89Qbfv4jELjzqmic9\"]},\"src/interfaces/IOGREDAOFactory.sol\":{\"keccak256\":\"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e\",\"dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"DAOFactoryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"proposalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREDAOFactory.sol":"OGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREDAOFactory.sol":{"keccak256":"0x5edffa876170ab79abee169335f86737ef94c0ed00bb35ecb417c6a359026e3c","urls":["bzz-raw://9e0b002858d0f19e87c9cf53613d53e70a5b5668bfd7d56ad71b967121b0137c","dweb:/ipfs/QmPx18DmbNeaynkRGawDY65zvAVec89Qbfv4jELjzqmic9"],"license":"UNLICENSED"},"src/interfaces/IOGREDAOFactory.sol":{"keccak256":"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31","urls":["bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e","dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":57} \ No newline at end of file +{"abi":[{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"proposalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"admin","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506130fd8061001d5f395ff3fe608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000202565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000133565b620000b19796959493929190620002f6565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e1919062000354565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a198975050505050505050565b612d4d806200037b83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000165575f80fd5b813567ffffffffffffffff8082111562000183576200018362000141565b604051601f8301601f19908116603f01168101908282118183101715620001ae57620001ae62000141565b81604052838152866020858801011115620001c7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b0381168114620001fd575f80fd5b919050565b5f805f805f805f60e0888a03121562000219575f80fd5b873567ffffffffffffffff8082111562000231575f80fd5b6200023f8b838c0162000155565b985060208a013591508082111562000255575f80fd5b50620002648a828b0162000155565b9650506200027560408901620001e6565b94506200028560608901620001e6565b9350608088013592506200029c60a08901620001e6565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002d757602081850181015186830182015201620002b9565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200030a60e083018a620002b1565b82810360208401526200031e818a620002b1565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037457634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa264697066735822122069fe14d74514a993120c83a72a9219175ecc8ee4b23a827644bd433268df462264736f6c63430008140033","sourceMap":"129:523:18:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000202565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000133565b620000b19796959493929190620002f6565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e1919062000354565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a198975050505050505050565b612d4d806200037b83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000165575f80fd5b813567ffffffffffffffff8082111562000183576200018362000141565b604051601f8301601f19908116603f01168101908282118183101715620001ae57620001ae62000141565b81604052838152866020858801011115620001c7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b0381168114620001fd575f80fd5b919050565b5f805f805f805f60e0888a03121562000219575f80fd5b873567ffffffffffffffff8082111562000231575f80fd5b6200023f8b838c0162000155565b985060208a013591508082111562000255575f80fd5b50620002648a828b0162000155565b9650506200027560408901620001e6565b94506200028560608901620001e6565b9350608088013592506200029c60a08901620001e6565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002d757602081850181015186830182015201620002b9565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200030a60e083018a620002b1565b82810360208401526200031e818a620002b1565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037457634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa264697066735822122069fe14d74514a993120c83a72a9219175ecc8ee4b23a827644bd433268df462264736f6c63430008140033","sourceMap":"129:523:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;175:475:18;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2304:32:30;;;2286:51;;2274:2;2259:18;175:475:18;2140:203:30;175:475:18;417:7;436:11;462:4;468:8;478:3;483:15;500:12;514:5;521;450:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;436:91;;556:1;537:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;572:42:18;;;-1:-1:-1;;;;;4046:15:30;;4028:34;;603:10:18;4093:2:30;4078:18;;4071:43;572:42:18;;3963:18:30;572:42:18;;;;;;;639:3;175:475;-1:-1:-1;;;;;;;;175:475:18:o;-1:-1:-1:-;;;;;;;;:::o;196:127:30:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:30;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:173::-;1120:20;;-1:-1:-1;;;;;1169:31:30;;1159:42;;1149:70;;1215:1;1212;1205:12;1149:70;1052:173;;;:::o;1230:905::-;1363:6;1371;1379;1387;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1521:9;1508:23;1550:18;1591:2;1583:6;1580:14;1577:34;;;1607:1;1604;1597:12;1577:34;1630:50;1672:7;1663:6;1652:9;1648:22;1630:50;:::i;:::-;1620:60;;1733:2;1722:9;1718:18;1705:32;1689:48;;1762:2;1752:8;1749:16;1746:36;;;1778:1;1775;1768:12;1746:36;;1801:52;1845:7;1834:8;1823:9;1819:24;1801:52;:::i;:::-;1791:62;;;1872:38;1906:2;1895:9;1891:18;1872:38;:::i;:::-;1862:48;;1929:38;1963:2;1952:9;1948:18;1929:38;:::i;:::-;1919:48;;2014:3;2003:9;1999:19;1986:33;1976:43;;2038:39;2072:3;2061:9;2057:19;2038:39;:::i;:::-;2028:49;;2124:3;2113:9;2109:19;2096:33;2086:43;;1230:905;;;;;;;;;;:::o;2348:423::-;2390:3;2428:5;2422:12;2455:6;2450:3;2443:19;2480:1;2490:162;2504:6;2501:1;2498:13;2490:162;;;2566:4;2622:13;;;2618:22;;2612:29;2594:11;;;2590:20;;2583:59;2519:12;2490:162;;;2494:3;2697:1;2690:4;2681:6;2676:3;2672:16;2668:27;2661:38;2760:4;2753:2;2749:7;2744:2;2736:6;2732:15;2728:29;2723:3;2719:39;2715:50;2708:57;;;2348:423;;;;:::o;2776:808::-;3113:3;3102:9;3095:22;3076:4;3140:46;3181:3;3170:9;3166:19;3158:6;3140:46;:::i;:::-;3234:9;3226:6;3222:22;3217:2;3206:9;3202:18;3195:50;3262:33;3288:6;3280;3262:33;:::i;:::-;-1:-1:-1;;;;;3369:15:30;;;3364:2;3349:18;;3342:43;3421:15;;;3416:2;3401:18;;3394:43;-1:-1:-1;;3468:3:30;3453:19;;3446:35;;;;3518:15;;3322:3;3497:19;;3490:44;3565:3;3550:19;3543:35;;;;3254:41;2776:808;-1:-1:-1;;2776:808:30:o;3589:222::-;3654:9;;;3675:10;;;3672:133;;;3727:10;3722:3;3718:20;3715:1;3708:31;3762:4;3759:1;3752:15;3790:4;3787:1;3780:15;3672:133;3589:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREDAOFactory.sol\":\"OGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0\",\"dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREDAOFactory.sol\":{\"keccak256\":\"0x067506ff3202f845b76f4ce15d86efbb24ea307944bbaab616869d87e01f67f8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0cf99767b61decc9d35a8fe3f513027f09992669668527950496ccb086d9d80a\",\"dweb:/ipfs/QmerrceRn7pkCM1gEaniJviZRGDSSwKmjowz6iompM4Wja\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"proposalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREDAOFactory.sol":"OGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d","urls":["bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0","dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREDAOFactory.sol":{"keccak256":"0x067506ff3202f845b76f4ce15d86efbb24ea307944bbaab616869d87e01f67f8","urls":["bzz-raw://0cf99767b61decc9d35a8fe3f513027f09992669668527950496ccb086d9d80a","dweb:/ipfs/QmerrceRn7pkCM1gEaniJviZRGDSSwKmjowz6iompM4Wja"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":18} \ No newline at end of file diff --git a/out/OGREFactory.sol/OGREFactory.json b/out/OGREFactory.sol/OGREFactory.json index 5bc4073..da7d24a 100644 --- a/out/OGREFactory.sol/OGREFactory.json +++ b/out/OGREFactory.sol/OGREFactory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"OGRE Factory Abstract Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/OGREFactory.sol\":\"OGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/OGREFactory.sol":"OGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"}},"version":1},"id":51} \ No newline at end of file +{"abi":[{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"OGRE Factory Abstract Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/OGREFactory.sol\":\"OGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/OGREFactory.sol":"OGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/OGREMarket.sol/OGREMarket.json b/out/OGREMarket.sol/OGREMarket.json index 5119e39..66100a9 100644 --- a/out/OGREMarket.sol/OGREMarket.json +++ b/out/OGREMarket.sol/OGREMarket.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"admin_","type":"address","internalType":"address"},{"name":"orderFee_","type":"uint256","internalType":"uint256"},{"name":"feeRecipient_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"listedItems","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minOrderDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"orderFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orders","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","internalType":"address"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setContractAllowed","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOrderFee","inputs":[{"name":"newOrderFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AllowlistUpdated","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeRecipientUpdated","inputs":[{"name":"newFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OrderCancelled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OrderCreated","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"erc721Address","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc20Address","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFeeUpdated","inputs":[{"name":"newOrderFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFulfilled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6","sourceMap":"541:8157:44:-:0;;;1633:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:15;2061:21;;-1:-1:-1;;;;;1734:24:44;;;;1768:42;-1:-1:-1;;;;;;;;;;;1803:6:44;1768:10;:42::i;:::-;-1:-1:-1;1839:10:44;;1825:25;;-1:-1:-1;;;;;805:32:76;;;787:51;;1825:25:44;;775:2:76;760:18;1825:25:44;;;;;;;1860:22;1872:9;1860:11;:22::i;:::-;1892:30;1908:13;1892:15;:30::i;:::-;1633:343;;;;541:8157;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;2027:164:44:-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:72;2464:10:0;:16::i;:::-;2119:8:44::1;:22:::0;;;2156:28:::1;::::0;995:25:76;;;2156:28:44::1;::::0;983:2:76;968:18;2156:28:44::1;;;;;;;;2027:164:::0;;:::o;2197:293::-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:72;2464:10:0;:16::i;:::-;-1:-1:-1;;;;;2305:31:44;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:44;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:44;;1233:2:76;2297:95:44::1;::::0;::::1;1215:21:76::0;1272:2;1252:18;;;1245:30;-1:-1:-1;;;1291:18:76;;;1284:45;1346:18;;2297:95:44::1;;;;;;;;;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:44::1;-1:-1:-1::0;;;;;2402:30:44;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;787:51:76;;;2447:36:44::1;::::0;775:2:76;760:18;2447:36:44::1;641:203:76::0;3199:103:0;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;3432:197::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;1567:32:76;;3565:47:0;;;1549:51:76;1616:18;;;1609:34;;;1522:18;;3565:47:0;1375:274:76;3515:108:0;3432:197;;:::o;14:177:76:-;93:13;;-1:-1:-1;;;;;135:31:76;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:440::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;558:2;547:9;543:18;537:25;527:35;;581:49;626:2;615:9;611:18;581:49;:::i;:::-;571:59;;196:440;;;;;;;:::o;1375:274::-;541:8157:44;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c63430008140033","sourceMap":"541:8157:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:76;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;677:23:44;;;;;;;;;;;;;;;;;;;643:25:76;;;631:2;616:18;677:23:44;497:177:76;602:35:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;843:32:76;;;825:51;;813:2;798:18;602:35:44;679:203:76;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;7628:992:44;;;;;;;;;;-1:-1:-1;7628:992:44;;;;;:::i;:::-;;:::i;7377:132::-;;;;;;;;;;-1:-1:-1;7377:132:44;;;;;:::i;:::-;7438:4;7461:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7461:25:44;:41;;;7377:132;4226:136:0;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;644:27:44:-;;;;;;;;;;-1:-1:-1;644:27:44;;;;-1:-1:-1;;;;;644:27:44;;;785:48;;;;;;;;;;-1:-1:-1;785:48:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;3119:3295;;;;;;:::i;:::-;;:::i;839:46::-;;;;;;;;;;-1:-1:-1;839:46:44;;;;;:::i;:::-;;;;;;;;;;;;;;6420:509;;;;;;;;;;-1:-1:-1;6420:509:44;;;;;:::i;:::-;;:::i;2775:293::-;;;;;;;;;;-1:-1:-1;2775:293:44;;;;;:::i;:::-;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;915:47:44:-;;;;;;;;;;-1:-1:-1;915:47:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;915:47:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;2027:164:44;;;;;;;;;;-1:-1:-1;2027:164:44;;;;;:::i;:::-;;:::i;7210:161::-;;;;;;;;;;-1:-1:-1;7210:161:44;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;2197:293:44:-;;;;;;;;;;-1:-1:-1;2197:293:44;;;;;:::i;:::-;;:::i;706:31::-;;;;;;;;;;;;;;;;6982:222;;;;;;;;;;-1:-1:-1;6982:222:44;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;7628:992:44:-;7690:4;7710:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7710:25:44;7706:59;;-1:-1:-1;7760:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7706:59::-;7780:49;7797:17;;;:6;:17;;;;;;;;:31;;;-1:-1:-1;;;;;7797:31:44;7780:49;;:16;:49;;;;;;;;7775:68;;-1:-1:-1;7838:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7775:68::-;7858:48;7875:17;;;:6;:17;;;;;;;;:30;;;-1:-1:-1;;;;;7875:30:44;7858:48;;:16;:48;;;;;;;;7853:67;;-1:-1:-1;7915:5:44;;7628:992;-1:-1:-1;7628:992:44:o;7853:67::-;7939:22;7972:17;;;:6;:17;;;;;;;:31;;;;8071:25;;8041;;;;;8018:49;;-1:-1:-1;;;8018:49:44;;;;;643:25:76;;;;-1:-1:-1;;;;;7972:31:44;;;;;8071:25;;;;;7972:31;;8018:22;;616:18:76;;8018:49:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8018:78:44;;8014:96;;-1:-1:-1;8105:5:44;;7628:992;-1:-1:-1;;7628:992:44:o;8014:96::-;8151:17;;;;:6;:17;;;;;;;:25;;;8124:53;;-1:-1:-1;;;8124:53:44;;8189:4;;-1:-1:-1;;;;;8124:26:44;;;;;:53;;;;643:25:76;;;631:2;616:18;;497:177;8124:53:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8124:70:44;;;:148;;;-1:-1:-1;8231:17:44;;;;:6;:17;;;;;;;:25;8199:73;;-1:-1:-1;;;8199:73:44;;8231:25;;;;-1:-1:-1;;;;;8231:25:44;;;8199:73;;;5574:34:76;8266:4:44;5624:18:76;;;5617:43;8199:31:44;;;;;5509:18:76;;8199:73:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8198:74;8124:148;8120:166;;;-1:-1:-1;8281:5:44;;7628:992;-1:-1:-1;;7628:992:44:o;8120:166::-;8305:20;8335:17;;;:6;:17;;;;;;;:30;;;;8433:24;;;;;8404:25;;8380:50;;-1:-1:-1;;;8380:50:44;;8335:30;8404:25;;;-1:-1:-1;;;;;8404:25:44;;;8380:50;;;825:51:76;;;;8335:30:44;;;;8380:23;;798:18:76;;8380:50:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;8376:95;;;-1:-1:-1;8466:5:44;;7628:992;-1:-1:-1;;;7628:992:44:o;8376:95::-;8553:17;;;;:6;:17;;;;;;;:24;;;;;8509:25;;8485:65;;-1:-1:-1;;;8485:65:44;;-1:-1:-1;;;;;8509:25:44;;;;;;8485:65;;;5574:34:76;;;;8544:4:44;5624:18:76;;;5617:43;8553:24:44;;8485:23;;;;;5509:18:76;;8485:65:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;8481:110;;;-1:-1:-1;8586:5:44;;7628:992;-1:-1:-1;;;7628:992:44:o;8481:110::-;-1:-1:-1;8609:4:44;;7628:992;-1:-1:-1;;;7628:992:44:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;3119:3295:44:-;2500:21:15;:19;:21::i;:::-;3304:19:44::1;3291:9;:32;;;;;;;;:::i;:::-;;:68;;;-1:-1:-1::0;3340:19:44::1;3327:9;:32;;;;;;;;:::i;:::-;;3291:68;3283:99;;;::::0;-1:-1:-1;;;3283:99:44;;6312:2:76;3283:99:44::1;::::0;::::1;6294:21:76::0;6351:2;6331:18;;;6324:30;-1:-1:-1;;;6370:18:76;;;6363:48;6428:18;;3283:99:44::1;;;;;;;;;-1:-1:-1::0;;;;;3400:31:44;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;3392:71;;;::::0;-1:-1:-1;;;3392:71:44;;6659:2:76;3392:71:44::1;::::0;::::1;6641:21:76::0;6698:2;6678:18;;;6671:30;6737:29;6717:18;;;6710:57;6784:18;;3392:71:44::1;6457:351:76::0;3392:71:44::1;-1:-1:-1::0;;;;;3481:30:44;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;3473:69;;;::::0;-1:-1:-1;;;3473:69:44;;7015:2:76;3473:69:44::1;::::0;::::1;6997:21:76::0;7054:2;7034:18;;;7027:30;7093:28;7073:18;;;7066:56;7139:18;;3473:69:44::1;6813:350:76::0;3473:69:44::1;3569:1;3560:6;:10;3552:37;;;::::0;-1:-1:-1;;;3552:37:44;;7370:2:76;3552:37:44::1;::::0;::::1;7352:21:76::0;7409:2;7389:18;;;7382:30;-1:-1:-1;;;7428:18:76;;;7421:44;7482:18;;3552:37:44::1;7168:338:76::0;3552:37:44::1;3690:17;3710:59;3724:13;3739:7;3748:12;3762:6;3710:13;:59::i;:::-;3690:79;;3779:16;3798:36;3811:13;3826:7;3798:12;:36::i;:::-;3779:55:::0;-1:-1:-1;3969:12:44;4025:13;3939:20:::1;4053:9;:32;;;;;;;;:::i;:::-;::::0;4049:599:::1;;4142:1;4109:21:::0;;;:11:::1;:21;::::0;;;;;:35;4101:79:::1;;;::::0;-1:-1:-1;;;4101:79:44;;7713:2:76;4101:79:44::1;::::0;::::1;7695:21:76::0;7752:2;7732:18;;;7725:30;7791:33;7771:18;;;7764:61;7842:18;;4101:79:44::1;7511:355:76::0;4101:79:44::1;4202:31;::::0;-1:-1:-1;;;4202:31:44;;::::1;::::0;::::1;643:25:76::0;;;4237:10:44::1;::::0;-1:-1:-1;;;;;4202:22:44;::::1;::::0;::::1;::::0;616:18:76;;4202:31:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4202:45:44::1;;4194:72;;;::::0;-1:-1:-1;;;4194:72:44;;8073:2:76;4194:72:44::1;::::0;::::1;8055:21:76::0;8112:2;8092:18;;;8085:30;-1:-1:-1;;;8131:18:76;;;8124:44;8185:18;;4194:72:44::1;7871:338:76::0;4194:72:44::1;4288:35;::::0;-1:-1:-1;;;4288:35:44;;::::1;::::0;::::1;643:25:76::0;;;4335:4:44::1;::::0;-1:-1:-1;;;;;4288:26:44;::::1;::::0;::::1;::::0;616:18:76;;4288:35:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4288:52:44::1;;:114;;;-1:-1:-1::0;4344:58:44::1;::::0;-1:-1:-1;;;4344:58:44;;4376:10:::1;4344:58;::::0;::::1;5574:34:76::0;4396:4:44::1;5624:18:76::0;;;5617:43;-1:-1:-1;;;;;4344:31:44;::::1;::::0;::::1;::::0;5509:18:76;;4344:58:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4280:139;;;::::0;-1:-1:-1;;;4280:139:44;;8416:2:76;4280:139:44::1;::::0;::::1;8398:21:76::0;8455:2;8435:18;;;8428:30;-1:-1:-1;;;8474:18:76;;;8467:42;8526:18;;4280:139:44::1;8214:336:76::0;4280:139:44::1;4049:599;;;4458:35;::::0;-1:-1:-1;;;4458:35:44;;4482:10:::1;4458:35;::::0;::::1;825:51:76::0;4497:6:44;;-1:-1:-1;;;;;4458:23:44;::::1;::::0;::::1;::::0;798:18:76;;4458:35:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4450:78;;;::::0;-1:-1:-1;;;4450:78:44;;8757:2:76;4450:78:44::1;::::0;::::1;8739:21:76::0;8796:2;8776:18;;;8769:30;-1:-1:-1;;;8815:18:76;;;8808:50;8875:18;;4450:78:44::1;8555:344:76::0;4450:78:44::1;4550:50;::::0;-1:-1:-1;;;4550:50:44;;4574:10:::1;4550:50;::::0;::::1;5574:34:76::0;4594:4:44::1;5624:18:76::0;;;5617:43;4604:6:44;;-1:-1:-1;;;;;4550:23:44;::::1;::::0;::::1;::::0;5509:18:76;;4550:50:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;4542:95;;;::::0;-1:-1:-1;;;4542:95:44;;9106:2:76;4542:95:44::1;::::0;::::1;9088:21:76::0;9145:2;9125:18;;;9118:30;-1:-1:-1;;;9164:18:76;;;9157:52;9226:18;;4542:95:44::1;8904:346:76::0;4542:95:44::1;4679:8;;4666:9;:21;4658:51;;;::::0;-1:-1:-1;;;4658:51:44;;9457:2:76;4658:51:44::1;::::0;::::1;9439:21:76::0;9496:2;9476:18;;;9469:30;-1:-1:-1;;;9515:18:76;;;9508:47;9572:18;;4658:51:44::1;9255:341:76::0;4658:51:44::1;4741:12;::::0;4766:8:::1;::::0;4741:38:::1;::::0;4720:15:::1;::::0;-1:-1:-1;;;;;4741:12:44::1;::::0;4766:8;4720:15;4741:38;4720:15;4741:38;4766:8;4741:12;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:60;;;4797:10;4789:48;;;::::0;-1:-1:-1;;;4789:48:44;;10013:2:76;4789:48:44::1;::::0;::::1;9995:21:76::0;10052:2;10032:18;;;10025:30;10091:27;10071:18;;;10064:55;10136:18;;4789:48:44::1;9811:349:76::0;4789:48:44::1;4916:3;4879:17:::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;4879:25:44::1;4875:1533;;4936:26;4965:192;;;;;;;;4996:9;4965:192;;;;;;;;:::i;:::-;::::0;;5023:10:::1;4965:192;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;4965:192:44;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;-1:-1:-1;5171:17:44;;;:6:::1;:17:::0;;;;:25;;;;4936:221;;-1:-1:-1;4936:221:44;;5171:17;;-1:-1:-1;;5171:25:44::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5171:25:44::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5171:25:44;;::::1;;;-1:-1:-1::0;;;;;;5171:25:44;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5171:25:44;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;5214:9;:32;;;;;;;;:::i;:::-;::::0;5210:104:::1;;5266:21;::::0;;;:11:::1;:21;::::0;;;;:33;;;5210:104:::1;5345:9;5332:92;5356:9;5367:10;5379:13;5394:7;5403:12;5417:6;5332:92;;;;;;;;;;;:::i;:::-;;;;;;;;4922:513;4875:1533;;;5530:9;5499:40;;;;;;;;:::i;:::-;:17;::::0;;;:6:::1;:17;::::0;;;;:27;::::1;;::::0;:40;::::1;;;;;;:::i;:::-;::::0;5491:73:::1;;;::::0;-1:-1:-1;;;5491:73:44;;10367:2:76;5491:73:44::1;::::0;::::1;10349:21:76::0;10406:2;10386:18;;;10379:30;-1:-1:-1;;;10425:18:76;;;10418:50;10485:18;;5491:73:44::1;10165:344:76::0;5491:73:44::1;5672:20;::::0;;5743:9:::1;:32;;;;;;;;:::i;:::-;::::0;5739:274:::1;;-1:-1:-1::0;;5852:17:44::1;::::0;;;:6:::1;:17;::::0;;;;:25;5810:10:::1;::::0;5852:25:::1;::::0;::::1;-1:-1:-1::0;;;;;5852:25:44::1;5739:274;;;-1:-1:-1::0;;5931:17:44::1;::::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;5931:25:44::1;5988:10;5739:274;6034:21;::::0;;;:11:::1;:21;::::0;;;;;;;6027:28;;;6076:17;;;:6:::1;:17:::0;;;;;;6069:24;;-1:-1:-1;;;;;;6069:24:44;;;-1:-1:-1;6069:24:44;::::1;::::0;;-1:-1:-1;;;;;;6069:24:44;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;6158:61;-1:-1:-1;;;6158:61:44;;-1:-1:-1;;;;;10772:15:76;;;6158:61:44;;::::1;10754:34:76::0;;;;10824:15;;;10804:18;;;10797:43;10856:18;;;10849:34;;;6158:26:44;;::::1;::::0;::::1;::::0;10689:18:76;;6158:61:44::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6285:67:44::1;::::0;-1:-1:-1;;;6285:67:44;;-1:-1:-1;;;;;10772:15:76;;;6285:67:44::1;::::0;::::1;10754:34:76::0;10824:15;;;10804:18;;;10797:43;10856:18;;;10849:34;;;6285:31:44;::::1;::::0;::::1;::::0;10689:18:76;;6285:67:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6372:25:44::1;::::0;6387:9;;-1:-1:-1;6372:25:44::1;::::0;-1:-1:-1;6372:25:44;;::::1;5441:967;;4875:1533;3273:3141;;;;;2542:20:15::0;1857:1;3068:21;;2888:208;2542:20;3119:3295:44;;;;;:::o;6420:509::-;6522:3;6485:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6485:25:44;6477:69;;;;-1:-1:-1;;;6477:69:44;;11096:2:76;6477:69:44;;;11078:21:76;11135:2;11115:18;;;11108:30;-1:-1:-1;;;11154:18:76;;;11147:45;11209:18;;6477:69:44;10894:339:76;6477:69:44;6564:17;;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6564:25:44;6593:10;6564:39;6556:69;;;;-1:-1:-1;;;6556:69:44;;11440:2:76;6556:69:44;;;11422:21:76;11479:2;11459:18;;;11452:30;-1:-1:-1;;;11498:18:76;;;11491:47;11555:18;;6556:69:44;11238:341:76;6556:69:44;6670:19;6639:17;;;:6;:17;;;;;:27;;;;:50;;;;;;;:::i;:::-;;6635:214;;6705:16;6737:17;;;:6;:17;;;;;:31;;;;6770:25;;;;;6724:72;;-1:-1:-1;;;;;6737:31:44;;6724:12;:72::i;:::-;6817:21;;;;:11;:21;;;;;6810:28;-1:-1:-1;6635:214:44;6865:17;;;;:6;:17;;;;;;6858:24;;-1:-1:-1;;;;;;6858:24:44;;;;;;;;-1:-1:-1;;;;;;6858:24:44;;;;;;;;;;;;;;;;;;;;;;;;;;;6897:25;6872:9;;6897:25;;;6420:509;:::o;2775:293::-;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2900:31:44;::::1;2892:59;;;::::0;-1:-1:-1;;;2892:59:44;;11786:2:76;2892:59:44::1;::::0;::::1;11768:21:76::0;11825:2;11805:18;;;11798:30;-1:-1:-1;;;11844:18:76;;;11837:45;11899:18;;2892:59:44::1;11584:339:76::0;2892:59:44::1;-1:-1:-1::0;;;;;2961:33:44;::::1;;::::0;;;:16:::1;:33;::::0;;;;;;;;:43;;-1:-1:-1;;2961:43:44::1;::::0;::::1;;::::0;;::::1;::::0;;;3019:42;;12096:51:76;;;12163:18;;;12156:50;3019:42:44::1;::::0;12069:18:76;3019:42:44::1;;;;;;;2775:293:::0;;;:::o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;2027:164:44:-;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;2119:8:44::1;:22:::0;;;2156:28:::1;::::0;643:25:76;;;2156:28:44::1;::::0;631:2:76;616:18;2156:28:44::1;;;;;;;;2027:164:::0;;:::o;7210:161::-;7329:34;;;-1:-1:-1;;;;;12409:32:76;;7329:34:44;;;12391:51:76;12458:18;;;12451:34;;;7293:7:44;;12364:18:76;;7329:34:44;;;;;;;;;;;;7319:45;;;;;;7312:52;;7210:161;;;;:::o;4642:138:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2197:293:44:-:0;441:25:72;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2305:31:44;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:44;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:44;;11786:2:76;2297:95:44::1;::::0;::::1;11768:21:76::0;11825:2;11805:18;;;11798:30;-1:-1:-1;;;11844:18:76;;;11837:45;11899:18;;2297:95:44::1;11584:339:76::0;2297:95:44::1;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:44::1;-1:-1:-1::0;;;;;2402:30:44;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;825:51:76;;;2447:36:44::1;::::0;813:2:76;798:18;2447:36:44::1;679:203:76::0;6982:222:44;7140:56;;;-1:-1:-1;;;;;12783:15:76;;;7140:56:44;;;12765:34:76;12815:18;;;12808:34;;;12878:15;;;12858:18;;;12851:43;12910:18;;;12903:34;;;7104:7:44;;12699:19:76;;7140:56:44;;;;;;;;;;;;7130:67;;;;;;7123:74;;6982:222;;;;;;:::o;3199:103:0:-;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;2575:307:15;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:15;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;12409:32:76;;3565:47:0;;;12391:51:76;12458:18;;;12451:34;;;12364:18;;3565:47:0;12217:274:76;3515:108:0;3432:197;;:::o;14:286:76:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:76;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:76:o;887:180::-;946:6;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;-1:-1:-1;1038:23:76;;887:180;-1:-1:-1;887:180:76:o;1254:131::-;-1:-1:-1;;;;;1329:31:76;;1319:42;;1309:70;;1375:1;1372;1365:12;1390:315;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1571:9;1558:23;1548:33;;1631:2;1620:9;1616:18;1603:32;1644:31;1669:5;1644:31;:::i;:::-;1694:5;1684:15;;;1390:315;;;;;:::o;1710:247::-;1769:6;1822:2;1810:9;1801:7;1797:23;1793:32;1790:52;;;1838:1;1835;1828:12;1790:52;1877:9;1864:23;1896:31;1921:5;1896:31;:::i;1962:691::-;2072:6;2080;2088;2096;2104;2157:3;2145:9;2136:7;2132:23;2128:33;2125:53;;;2174:1;2171;2164:12;2125:53;2213:9;2200:23;2252:1;2245:5;2242:12;2232:40;;2268:1;2265;2258:12;2232:40;2291:5;-1:-1:-1;2348:2:76;2333:18;;2320:32;2361:33;2320:32;2361:33;:::i;:::-;2413:7;-1:-1:-1;2467:2:76;2452:18;;2439:32;;-1:-1:-1;2523:2:76;2508:18;;2495:32;2536:33;2495:32;2536:33;:::i;:::-;1962:691;;;;-1:-1:-1;1962:691:76;;2642:3;2627:19;2614:33;;1962:691;-1:-1:-1;;1962:691:76:o;2658:118::-;2744:5;2737:13;2730:21;2723:5;2720:32;2710:60;;2766:1;2763;2756:12;2781:382;2846:6;2854;2907:2;2895:9;2886:7;2882:23;2878:32;2875:52;;;2923:1;2920;2913:12;2875:52;2962:9;2949:23;2981:31;3006:5;2981:31;:::i;:::-;3031:5;-1:-1:-1;3088:2:76;3073:18;;3060:32;3101:30;3060:32;3101:30;:::i;3168:127::-;3229:10;3224:3;3220:20;3217:1;3210:31;3260:4;3257:1;3250:15;3284:4;3281:1;3274:15;3300:766;3587:3;3572:19;;3621:1;3610:13;;3600:144;;3666:10;3661:3;3657:20;3654:1;3647:31;3701:4;3698:1;3691:15;3729:4;3726:1;3719:15;3600:144;3753:25;;;-1:-1:-1;;;;;3852:15:76;;;3847:2;3832:18;;3825:43;3904:15;;;3899:2;3884:18;;3877:43;3951:2;3936:18;;3929:34;;;;4000:15;;;3994:3;3979:19;;3972:44;3805:3;4032:19;4025:35;3300:766;:::o;4256:315::-;4324:6;4332;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4440:9;4427:23;4459:31;4484:5;4459:31;:::i;:::-;4509:5;4561:2;4546:18;;;;4533:32;;-1:-1:-1;;;4256:315:76:o;4576:525::-;4662:6;4670;4678;4686;4739:3;4727:9;4718:7;4714:23;4710:33;4707:53;;;4756:1;4753;4746:12;4707:53;4795:9;4782:23;4814:31;4839:5;4814:31;:::i;:::-;4864:5;-1:-1:-1;4916:2:76;4901:18;;4888:32;;-1:-1:-1;4972:2:76;4957:18;;4944:32;4985:33;4944:32;4985:33;:::i;:::-;4576:525;;;;-1:-1:-1;5037:7:76;;5091:2;5076:18;5063:32;;-1:-1:-1;;4576:525:76:o;5106:251::-;5176:6;5229:2;5217:9;5208:7;5204:23;5200:32;5197:52;;;5245:1;5242;5235:12;5197:52;5277:9;5271:16;5296:31;5321:5;5296:31;:::i;5671:245::-;5738:6;5791:2;5779:9;5770:7;5766:23;5762:32;5759:52;;;5807:1;5804;5797:12;5759:52;5839:9;5833:16;5858:28;5880:5;5858:28;:::i;5921:184::-;5991:6;6044:2;6032:9;6023:7;6019:23;6015:32;6012:52;;;6060:1;6057;6050:12;6012:52;-1:-1:-1;6083:16:76;;5921:184;-1:-1:-1;5921:184:76:o","linkReferences":{},"immutableReferences":{"47984":[{"start":424,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","cancelOrder(bytes32)":"7489ec23","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","daoAddress()":"2131c68c","feeRecipient()":"46904840","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isValidOrder(bytes32)":"24fc4fbd","listedItems(bytes32)":"6c054b1d","minOrderDuration()":"ff4217f1","orderExists(bytes32)":"2cb77e9f","orderFee()":"1392fb3e","orders(bytes32)":"9c3f1e90","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setContractAllowed(address,bool)":"7965d76b","setFeeRecipient(address)":"e74b981b","setOrderFee(uint256)":"c014930f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"MarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"OrderFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"isValidOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"listedItems\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOrderDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orders\",\"outputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setContractAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"setOrderFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidOrder(bytes32)\":{\"notice\":\"Returns true if order is still valid. Non-existant orders are considered invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREMarket.sol\":\"OGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a\",\"dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"orderFee_","type":"uint256"},{"internalType":"address","name":"feeRecipient_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"bool","name":"allowed","type":"bool","indexed":false}],"type":"event","name":"AllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":false}],"type":"event","name":"FeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false}],"type":"event","name":"MarketCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true},{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"address","name":"erc721Address","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc20Address","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256","indexed":false}],"type":"event","name":"OrderFeeUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderFulfilled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"listedItems","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOrderDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orders","outputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setContractAllowed"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOrderFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"isValidOrder(bytes32)":{"notice":"Returns true if order is still valid. Non-existant orders are considered invalid."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREMarket.sol":"OGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d","urls":["bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a","dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":44} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"admin_","type":"address","internalType":"address"},{"name":"orderFee_","type":"uint256","internalType":"uint256"},{"name":"feeRecipient_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"listedItems","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minOrderDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"orderFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orders","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","internalType":"address"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setContractAllowed","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOrderFee","inputs":[{"name":"newOrderFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AllowlistUpdated","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeRecipientUpdated","inputs":[{"name":"newFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OrderCancelled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OrderCreated","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"erc721Address","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc20Address","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFeeUpdated","inputs":[{"name":"newOrderFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFulfilled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6","sourceMap":"541:8157:12:-:0;;;1633:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:8;2061:21;;-1:-1:-1;;;;;1734:24:12;;;;1768:42;-1:-1:-1;;;;;;;;;;;1803:6:12;1768:10;:42::i;:::-;-1:-1:-1;1839:10:12;;1825:25;;-1:-1:-1;;;;;805:32:30;;;787:51;;1825:25:12;;775:2:30;760:18;1825:25:12;;;;;;;1860:22;1872:9;1860:11;:22::i;:::-;1892:30;1908:13;1892:15;:30::i;:::-;1633:343;;;;541:8157;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;2027:164:12:-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:27;2464:10:0;:16::i;:::-;2119:8:12::1;:22:::0;;;2156:28:::1;::::0;995:25:30;;;2156:28:12::1;::::0;983:2:30;968:18;2156:28:12::1;;;;;;;;2027:164:::0;;:::o;2197:293::-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:27;2464:10:0;:16::i;:::-;-1:-1:-1;;;;;2305:31:12;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:12;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:12;;1233:2:30;2297:95:12::1;::::0;::::1;1215:21:30::0;1272:2;1252:18;;;1245:30;-1:-1:-1;;;1291:18:30;;;1284:45;1346:18;;2297:95:12::1;;;;;;;;;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:12::1;-1:-1:-1::0;;;;;2402:30:12;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;787:51:30;;;2447:36:12::1;::::0;775:2:30;760:18;2447:36:12::1;641:203:30::0;3199:103:0;3265:30;3276:4;735:10:6;3265::0;:30::i;:::-;3199:103;:::o;3432:197::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;1567:32:30;;3565:47:0;;;1549:51:30;1616:18;;;1609:34;;;1522:18;;3565:47:0;1375:274:30;3515:108:0;3432:197;;:::o;14:177:30:-;93:13;;-1:-1:-1;;;;;135:31:30;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:440::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;558:2;547:9;543:18;537:25;527:35;;581:49;626:2;615:9;611:18;581:49;:::i;:::-;571:59;;196:440;;;;;;;:::o;1375:274::-;541:8157:12;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c63430008140033","sourceMap":"541:8157:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:30;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;677:23:12;;;;;;;;;;;;;;;;;;;643:25:30;;;631:2;616:18;677:23:12;497:177:30;602:35:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;843:32:30;;;825:51;;813:2;798:18;602:35:12;679:203:30;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;7628:992:12;;;;;;;;;;-1:-1:-1;7628:992:12;;;;;:::i;:::-;;:::i;7377:132::-;;;;;;;;;;-1:-1:-1;7377:132:12;;;;;:::i;:::-;7438:4;7461:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7461:25:12;:41;;;7377:132;4226:136:0;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;644:27:12:-;;;;;;;;;;-1:-1:-1;644:27:12;;;;-1:-1:-1;;;;;644:27:12;;;785:48;;;;;;;;;;-1:-1:-1;785:48:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;3119:3295;;;;;;:::i;:::-;;:::i;839:46::-;;;;;;;;;;-1:-1:-1;839:46:12;;;;;:::i;:::-;;;;;;;;;;;;;;6420:509;;;;;;;;;;-1:-1:-1;6420:509:12;;;;;:::i;:::-;;:::i;2775:293::-;;;;;;;;;;-1:-1:-1;2775:293:12;;;;;:::i;:::-;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;915:47:12:-;;;;;;;;;;-1:-1:-1;915:47:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;915:47:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;2027:164:12;;;;;;;;;;-1:-1:-1;2027:164:12;;;;;:::i;:::-;;:::i;7210:161::-;;;;;;;;;;-1:-1:-1;7210:161:12;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;2197:293:12:-;;;;;;;;;;-1:-1:-1;2197:293:12;;;;;:::i;:::-;;:::i;706:31::-;;;;;;;;;;;;;;;;6982:222;;;;;;;;;;-1:-1:-1;6982:222:12;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:9;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;7628:992:12:-;7690:4;7710:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7710:25:12;7706:59;;-1:-1:-1;7760:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7706:59::-;7780:49;7797:17;;;:6;:17;;;;;;;;:31;;;-1:-1:-1;;;;;7797:31:12;7780:49;;:16;:49;;;;;;;;7775:68;;-1:-1:-1;7838:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7775:68::-;7858:48;7875:17;;;:6;:17;;;;;;;;:30;;;-1:-1:-1;;;;;7875:30:12;7858:48;;:16;:48;;;;;;;;7853:67;;-1:-1:-1;7915:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7853:67::-;7939:22;7972:17;;;:6;:17;;;;;;;:31;;;;8071:25;;8041;;;;;8018:49;;-1:-1:-1;;;8018:49:12;;;;;643:25:30;;;;-1:-1:-1;;;;;7972:31:12;;;;;8071:25;;;;;7972:31;;8018:22;;616:18:30;;8018:49:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8018:78:12;;8014:96;;-1:-1:-1;8105:5:12;;7628:992;-1:-1:-1;;7628:992:12:o;8014:96::-;8151:17;;;;:6;:17;;;;;;;:25;;;8124:53;;-1:-1:-1;;;8124:53:12;;8189:4;;-1:-1:-1;;;;;8124:26:12;;;;;:53;;;;643:25:30;;;631:2;616:18;;497:177;8124:53:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8124:70:12;;;:148;;;-1:-1:-1;8231:17:12;;;;:6;:17;;;;;;;:25;8199:73;;-1:-1:-1;;;8199:73:12;;8231:25;;;;-1:-1:-1;;;;;8231:25:12;;;8199:73;;;5572:34:30;8266:4:12;5622:18:30;;;5615:43;8199:31:12;;;;;5507:18:30;;8199:73:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8198:74;8124:148;8120:166;;;-1:-1:-1;8281:5:12;;7628:992;-1:-1:-1;;7628:992:12:o;8120:166::-;8305:20;8335:17;;;:6;:17;;;;;;;:30;;;;8433:24;;;;;8404:25;;8380:50;;-1:-1:-1;;;8380:50:12;;8335:30;8404:25;;;-1:-1:-1;;;;;8404:25:12;;;8380:50;;;825:51:30;;;;8335:30:12;;;;8380:23;;798:18:30;;8380:50:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;8376:95;;;-1:-1:-1;8466:5:12;;7628:992;-1:-1:-1;;;7628:992:12:o;8376:95::-;8553:17;;;;:6;:17;;;;;;;:24;;;;;8509:25;;8485:65;;-1:-1:-1;;;8485:65:12;;-1:-1:-1;;;;;8509:25:12;;;;;;8485:65;;;5572:34:30;;;;8544:4:12;5622:18:30;;;5615:43;8553:24:12;;8485:23;;;;;5507:18:30;;8485:65:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;8481:110;;;-1:-1:-1;8586:5:12;;7628:992;-1:-1:-1;;;7628:992:12:o;8481:110::-;-1:-1:-1;8609:4:12;;7628:992;-1:-1:-1;;;7628:992:12:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:6;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;3119:3295:12:-;2500:21:8;:19;:21::i;:::-;3304:19:12::1;3291:9;:32;;;;;;;;:::i;:::-;;:68;;;-1:-1:-1::0;3340:19:12::1;3327:9;:32;;;;;;;;:::i;:::-;;3291:68;3283:99;;;::::0;-1:-1:-1;;;3283:99:12;;6310:2:30;3283:99:12::1;::::0;::::1;6292:21:30::0;6349:2;6329:18;;;6322:30;-1:-1:-1;;;6368:18:30;;;6361:48;6426:18;;3283:99:12::1;;;;;;;;;-1:-1:-1::0;;;;;3400:31:12;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;3392:71;;;::::0;-1:-1:-1;;;3392:71:12;;6657:2:30;3392:71:12::1;::::0;::::1;6639:21:30::0;6696:2;6676:18;;;6669:30;6735:29;6715:18;;;6708:57;6782:18;;3392:71:12::1;6455:351:30::0;3392:71:12::1;-1:-1:-1::0;;;;;3481:30:12;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;3473:69;;;::::0;-1:-1:-1;;;3473:69:12;;7013:2:30;3473:69:12::1;::::0;::::1;6995:21:30::0;7052:2;7032:18;;;7025:30;7091:28;7071:18;;;7064:56;7137:18;;3473:69:12::1;6811:350:30::0;3473:69:12::1;3569:1;3560:6;:10;3552:37;;;::::0;-1:-1:-1;;;3552:37:12;;7368:2:30;3552:37:12::1;::::0;::::1;7350:21:30::0;7407:2;7387:18;;;7380:30;-1:-1:-1;;;7426:18:30;;;7419:44;7480:18;;3552:37:12::1;7166:338:30::0;3552:37:12::1;3690:17;3710:59;3724:13;3739:7;3748:12;3762:6;3710:13;:59::i;:::-;3690:79;;3779:16;3798:36;3811:13;3826:7;3798:12;:36::i;:::-;3779:55:::0;-1:-1:-1;3969:12:12;4025:13;3939:20:::1;4053:9;:32;;;;;;;;:::i;:::-;::::0;4049:599:::1;;4142:1;4109:21:::0;;;:11:::1;:21;::::0;;;;;:35;4101:79:::1;;;::::0;-1:-1:-1;;;4101:79:12;;7711:2:30;4101:79:12::1;::::0;::::1;7693:21:30::0;7750:2;7730:18;;;7723:30;7789:33;7769:18;;;7762:61;7840:18;;4101:79:12::1;7509:355:30::0;4101:79:12::1;4202:31;::::0;-1:-1:-1;;;4202:31:12;;::::1;::::0;::::1;643:25:30::0;;;4237:10:12::1;::::0;-1:-1:-1;;;;;4202:22:12;::::1;::::0;::::1;::::0;616:18:30;;4202:31:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4202:45:12::1;;4194:72;;;::::0;-1:-1:-1;;;4194:72:12;;8071:2:30;4194:72:12::1;::::0;::::1;8053:21:30::0;8110:2;8090:18;;;8083:30;-1:-1:-1;;;8129:18:30;;;8122:44;8183:18;;4194:72:12::1;7869:338:30::0;4194:72:12::1;4288:35;::::0;-1:-1:-1;;;4288:35:12;;::::1;::::0;::::1;643:25:30::0;;;4335:4:12::1;::::0;-1:-1:-1;;;;;4288:26:12;::::1;::::0;::::1;::::0;616:18:30;;4288:35:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4288:52:12::1;;:114;;;-1:-1:-1::0;4344:58:12::1;::::0;-1:-1:-1;;;4344:58:12;;4376:10:::1;4344:58;::::0;::::1;5572:34:30::0;4396:4:12::1;5622:18:30::0;;;5615:43;-1:-1:-1;;;;;4344:31:12;::::1;::::0;::::1;::::0;5507:18:30;;4344:58:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4280:139;;;::::0;-1:-1:-1;;;4280:139:12;;8414:2:30;4280:139:12::1;::::0;::::1;8396:21:30::0;8453:2;8433:18;;;8426:30;-1:-1:-1;;;8472:18:30;;;8465:42;8524:18;;4280:139:12::1;8212:336:30::0;4280:139:12::1;4049:599;;;4458:35;::::0;-1:-1:-1;;;4458:35:12;;4482:10:::1;4458:35;::::0;::::1;825:51:30::0;4497:6:12;;-1:-1:-1;;;;;4458:23:12;::::1;::::0;::::1;::::0;798:18:30;;4458:35:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4450:78;;;::::0;-1:-1:-1;;;4450:78:12;;8755:2:30;4450:78:12::1;::::0;::::1;8737:21:30::0;8794:2;8774:18;;;8767:30;-1:-1:-1;;;8813:18:30;;;8806:50;8873:18;;4450:78:12::1;8553:344:30::0;4450:78:12::1;4550:50;::::0;-1:-1:-1;;;4550:50:12;;4574:10:::1;4550:50;::::0;::::1;5572:34:30::0;4594:4:12::1;5622:18:30::0;;;5615:43;4604:6:12;;-1:-1:-1;;;;;4550:23:12;::::1;::::0;::::1;::::0;5507:18:30;;4550:50:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;4542:95;;;::::0;-1:-1:-1;;;4542:95:12;;9104:2:30;4542:95:12::1;::::0;::::1;9086:21:30::0;9143:2;9123:18;;;9116:30;-1:-1:-1;;;9162:18:30;;;9155:52;9224:18;;4542:95:12::1;8902:346:30::0;4542:95:12::1;4679:8;;4666:9;:21;4658:51;;;::::0;-1:-1:-1;;;4658:51:12;;9455:2:30;4658:51:12::1;::::0;::::1;9437:21:30::0;9494:2;9474:18;;;9467:30;-1:-1:-1;;;9513:18:30;;;9506:47;9570:18;;4658:51:12::1;9253:341:30::0;4658:51:12::1;4741:12;::::0;4766:8:::1;::::0;4741:38:::1;::::0;4720:15:::1;::::0;-1:-1:-1;;;;;4741:12:12::1;::::0;4766:8;4720:15;4741:38;4720:15;4741:38;4766:8;4741:12;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:60;;;4797:10;4789:48;;;::::0;-1:-1:-1;;;4789:48:12;;10011:2:30;4789:48:12::1;::::0;::::1;9993:21:30::0;10050:2;10030:18;;;10023:30;10089:27;10069:18;;;10062:55;10134:18;;4789:48:12::1;9809:349:30::0;4789:48:12::1;4916:3;4879:17:::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;4879:25:12::1;4875:1533;;4936:26;4965:192;;;;;;;;4996:9;4965:192;;;;;;;;:::i;:::-;::::0;;5023:10:::1;4965:192;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;4965:192:12;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;-1:-1:-1;5171:17:12;;;:6:::1;:17:::0;;;;:25;;;;4936:221;;-1:-1:-1;4936:221:12;;5171:17;;-1:-1:-1;;5171:25:12::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5171:25:12::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5171:25:12;;::::1;;;-1:-1:-1::0;;;;;;5171:25:12;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5171:25:12;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;5214:9;:32;;;;;;;;:::i;:::-;::::0;5210:104:::1;;5266:21;::::0;;;:11:::1;:21;::::0;;;;:33;;;5210:104:::1;5345:9;5332:92;5356:9;5367:10;5379:13;5394:7;5403:12;5417:6;5332:92;;;;;;;;;;;:::i;:::-;;;;;;;;4922:513;4875:1533;;;5530:9;5499:40;;;;;;;;:::i;:::-;:17;::::0;;;:6:::1;:17;::::0;;;;:27;::::1;;::::0;:40;::::1;;;;;;:::i;:::-;::::0;5491:73:::1;;;::::0;-1:-1:-1;;;5491:73:12;;10365:2:30;5491:73:12::1;::::0;::::1;10347:21:30::0;10404:2;10384:18;;;10377:30;-1:-1:-1;;;10423:18:30;;;10416:50;10483:18;;5491:73:12::1;10163:344:30::0;5491:73:12::1;5672:20;::::0;;5743:9:::1;:32;;;;;;;;:::i;:::-;::::0;5739:274:::1;;-1:-1:-1::0;;5852:17:12::1;::::0;;;:6:::1;:17;::::0;;;;:25;5810:10:::1;::::0;5852:25:::1;::::0;::::1;-1:-1:-1::0;;;;;5852:25:12::1;5739:274;;;-1:-1:-1::0;;5931:17:12::1;::::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;5931:25:12::1;5988:10;5739:274;6034:21;::::0;;;:11:::1;:21;::::0;;;;;;;6027:28;;;6076:17;;;:6:::1;:17:::0;;;;;;6069:24;;-1:-1:-1;;;;;;6069:24:12;;;-1:-1:-1;6069:24:12;::::1;::::0;;-1:-1:-1;;;;;;6069:24:12;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;6158:61;-1:-1:-1;;;6158:61:12;;-1:-1:-1;;;;;10770:15:30;;;6158:61:12;;::::1;10752:34:30::0;;;;10822:15;;;10802:18;;;10795:43;10854:18;;;10847:34;;;6158:26:12;;::::1;::::0;::::1;::::0;10687:18:30;;6158:61:12::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6285:67:12::1;::::0;-1:-1:-1;;;6285:67:12;;-1:-1:-1;;;;;10770:15:30;;;6285:67:12::1;::::0;::::1;10752:34:30::0;10822:15;;;10802:18;;;10795:43;10854:18;;;10847:34;;;6285:31:12;::::1;::::0;::::1;::::0;10687:18:30;;6285:67:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6372:25:12::1;::::0;6387:9;;-1:-1:-1;6372:25:12::1;::::0;-1:-1:-1;6372:25:12;;::::1;5441:967;;4875:1533;3273:3141;;;;;2542:20:8::0;1857:1;3068:21;;2888:208;2542:20;3119:3295:12;;;;;:::o;6420:509::-;6522:3;6485:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6485:25:12;6477:69;;;;-1:-1:-1;;;6477:69:12;;11094:2:30;6477:69:12;;;11076:21:30;11133:2;11113:18;;;11106:30;-1:-1:-1;;;11152:18:30;;;11145:45;11207:18;;6477:69:12;10892:339:30;6477:69:12;6564:17;;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6564:25:12;6593:10;6564:39;6556:69;;;;-1:-1:-1;;;6556:69:12;;11438:2:30;6556:69:12;;;11420:21:30;11477:2;11457:18;;;11450:30;-1:-1:-1;;;11496:18:30;;;11489:47;11553:18;;6556:69:12;11236:341:30;6556:69:12;6670:19;6639:17;;;:6;:17;;;;;:27;;;;:50;;;;;;;:::i;:::-;;6635:214;;6705:16;6737:17;;;:6;:17;;;;;:31;;;;6770:25;;;;;6724:72;;-1:-1:-1;;;;;6737:31:12;;6724:12;:72::i;:::-;6817:21;;;;:11;:21;;;;;6810:28;-1:-1:-1;6635:214:12;6865:17;;;;:6;:17;;;;;;6858:24;;-1:-1:-1;;;;;;6858:24:12;;;;;;;;-1:-1:-1;;;;;;6858:24:12;;;;;;;;;;;;;;;;;;;;;;;;;;;6897:25;6872:9;;6897:25;;;6420:509;:::o;2775:293::-;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2900:31:12;::::1;2892:59;;;::::0;-1:-1:-1;;;2892:59:12;;11784:2:30;2892:59:12::1;::::0;::::1;11766:21:30::0;11823:2;11803:18;;;11796:30;-1:-1:-1;;;11842:18:30;;;11835:45;11897:18;;2892:59:12::1;11582:339:30::0;2892:59:12::1;-1:-1:-1::0;;;;;2961:33:12;::::1;;::::0;;;:16:::1;:33;::::0;;;;;;;;:43;;-1:-1:-1;;2961:43:12::1;::::0;::::1;;::::0;;::::1;::::0;;;3019:42;;12094:51:30;;;12161:18;;;12154:50;3019:42:12::1;::::0;12067:18:30;3019:42:12::1;;;;;;;2775:293:::0;;;:::o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;2027:164:12:-;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;2119:8:12::1;:22:::0;;;2156:28:::1;::::0;643:25:30;;;2156:28:12::1;::::0;631:2:30;616:18;2156:28:12::1;;;;;;;;2027:164:::0;;:::o;7210:161::-;7329:34;;;-1:-1:-1;;;;;12407:32:30;;7329:34:12;;;12389:51:30;12456:18;;;12449:34;;;7293:7:12;;12362:18:30;;7329:34:12;;;;;;;;;;;;7319:45;;;;;;7312:52;;7210:161;;;;:::o;4642:138:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2197:293:12:-:0;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2305:31:12;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:12;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:12;;11784:2:30;2297:95:12::1;::::0;::::1;11766:21:30::0;11823:2;11803:18;;;11796:30;-1:-1:-1;;;11842:18:30;;;11835:45;11897:18;;2297:95:12::1;11582:339:30::0;2297:95:12::1;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:12::1;-1:-1:-1::0;;;;;2402:30:12;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;825:51:30;;;2447:36:12::1;::::0;813:2:30;798:18;2447:36:12::1;679:203:30::0;6982:222:12;7140:56;;;-1:-1:-1;;;;;12781:15:30;;;7140:56:12;;;12763:34:30;12813:18;;;12806:34;;;12876:15;;;12856:18;;;12849:43;12908:18;;;12901:34;;;7104:7:12;;12697:19:30;;7140:56:12;;;;;;;;;;;;7130:67;;;;;;7123:74;;6982:222;;;;;;:::o;3199:103:0:-;3265:30;3276:4;735:10:6;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:6;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;2575:307:8;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:8;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;12407:32:30;;3565:47:0;;;12389:51:30;12456:18;;;12449:34;;;12362:18;;3565:47:0;12215:274:30;3515:108:0;3432:197;;:::o;14:286:30:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:30;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:30:o;887:180::-;946:6;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;-1:-1:-1;1038:23:30;;887:180;-1:-1:-1;887:180:30:o;1254:131::-;-1:-1:-1;;;;;1329:31:30;;1319:42;;1309:70;;1375:1;1372;1365:12;1390:315;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1571:9;1558:23;1548:33;;1631:2;1620:9;1616:18;1603:32;1644:31;1669:5;1644:31;:::i;:::-;1694:5;1684:15;;;1390:315;;;;;:::o;1710:247::-;1769:6;1822:2;1810:9;1801:7;1797:23;1793:32;1790:52;;;1838:1;1835;1828:12;1790:52;1877:9;1864:23;1896:31;1921:5;1896:31;:::i;1962:690::-;2071:6;2079;2087;2095;2103;2156:3;2144:9;2135:7;2131:23;2127:33;2124:53;;;2173:1;2170;2163:12;2124:53;2212:9;2199:23;2251:1;2244:5;2241:12;2231:40;;2267:1;2264;2257:12;2231:40;2290:5;-1:-1:-1;2347:2:30;2332:18;;2319:32;2360:33;2319:32;2360:33;:::i;:::-;2412:7;-1:-1:-1;2466:2:30;2451:18;;2438:32;;-1:-1:-1;2522:2:30;2507:18;;2494:32;2535:33;2494:32;2535:33;:::i;:::-;1962:690;;;;-1:-1:-1;1962:690:30;;2641:3;2626:19;2613:33;;1962:690;-1:-1:-1;;1962:690:30:o;2657:118::-;2743:5;2736:13;2729:21;2722:5;2719:32;2709:60;;2765:1;2762;2755:12;2780:382;2845:6;2853;2906:2;2894:9;2885:7;2881:23;2877:32;2874:52;;;2922:1;2919;2912:12;2874:52;2961:9;2948:23;2980:31;3005:5;2980:31;:::i;:::-;3030:5;-1:-1:-1;3087:2:30;3072:18;;3059:32;3100:30;3059:32;3100:30;:::i;3167:127::-;3228:10;3223:3;3219:20;3216:1;3209:31;3259:4;3256:1;3249:15;3283:4;3280:1;3273:15;3299:765;3585:3;3570:19;;3619:1;3608:13;;3598:144;;3664:10;3659:3;3655:20;3652:1;3645:31;3699:4;3696:1;3689:15;3727:4;3724:1;3717:15;3598:144;3751:25;;;-1:-1:-1;;;;;3850:15:30;;;3845:2;3830:18;;3823:43;3902:15;;;3897:2;3882:18;;3875:43;3949:2;3934:18;;3927:34;;;;3998:15;;;3992:3;3977:19;;3970:44;3803:3;4030:19;4023:35;3299:765;:::o;4254:315::-;4322:6;4330;4383:2;4371:9;4362:7;4358:23;4354:32;4351:52;;;4399:1;4396;4389:12;4351:52;4438:9;4425:23;4457:31;4482:5;4457:31;:::i;:::-;4507:5;4559:2;4544:18;;;;4531:32;;-1:-1:-1;;;4254:315:30:o;4574:525::-;4660:6;4668;4676;4684;4737:3;4725:9;4716:7;4712:23;4708:33;4705:53;;;4754:1;4751;4744:12;4705:53;4793:9;4780:23;4812:31;4837:5;4812:31;:::i;:::-;4862:5;-1:-1:-1;4914:2:30;4899:18;;4886:32;;-1:-1:-1;4970:2:30;4955:18;;4942:32;4983:33;4942:32;4983:33;:::i;:::-;4574:525;;;;-1:-1:-1;5035:7:30;;5089:2;5074:18;5061:32;;-1:-1:-1;;4574:525:30:o;5104:251::-;5174:6;5227:2;5215:9;5206:7;5202:23;5198:32;5195:52;;;5243:1;5240;5233:12;5195:52;5275:9;5269:16;5294:31;5319:5;5294:31;:::i;5669:245::-;5736:6;5789:2;5777:9;5768:7;5764:23;5760:32;5757:52;;;5805:1;5802;5795:12;5757:52;5837:9;5831:16;5856:28;5878:5;5856:28;:::i;5919:184::-;5989:6;6042:2;6030:9;6021:7;6017:23;6013:32;6010:52;;;6058:1;6055;6048:12;6010:52;-1:-1:-1;6081:16:30;;5919:184;-1:-1:-1;5919:184:30:o","linkReferences":{},"immutableReferences":{"1883":[{"start":424,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","cancelOrder(bytes32)":"7489ec23","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","daoAddress()":"2131c68c","feeRecipient()":"46904840","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isValidOrder(bytes32)":"24fc4fbd","listedItems(bytes32)":"6c054b1d","minOrderDuration()":"ff4217f1","orderExists(bytes32)":"2cb77e9f","orderFee()":"1392fb3e","orders(bytes32)":"9c3f1e90","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setContractAllowed(address,bool)":"7965d76b","setFeeRecipient(address)":"e74b981b","setOrderFee(uint256)":"c014930f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"MarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"OrderFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"isValidOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"listedItems\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOrderDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orders\",\"outputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setContractAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"setOrderFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidOrder(bytes32)\":{\"notice\":\"Returns true if order is still valid. Non-existant orders are considered invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREMarket.sol\":\"OGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead\",\"dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"orderFee_","type":"uint256"},{"internalType":"address","name":"feeRecipient_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"bool","name":"allowed","type":"bool","indexed":false}],"type":"event","name":"AllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":false}],"type":"event","name":"FeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false}],"type":"event","name":"MarketCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true},{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"address","name":"erc721Address","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc20Address","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256","indexed":false}],"type":"event","name":"OrderFeeUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderFulfilled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"listedItems","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOrderDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orders","outputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setContractAllowed"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOrderFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"isValidOrder(bytes32)":{"notice":"Returns true if order is still valid. Non-existant orders are considered invalid."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREMarket.sol":"OGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0","urls":["bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead","dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/OGREMarketFactory.sol/OGREMarketFactory.json b/out/OGREMarketFactory.sol/OGREMarketFactory.json index cc1b97b..979a550 100644 --- a/out/OGREMarketFactory.sol/OGREMarketFactory.json +++ b/out/OGREMarketFactory.sol/OGREMarketFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f2645dcffcce4e8ad5369b80fc5106d11d790c1a76f1937c0f7b746099076eb559060200160405180910390a161211c806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610162565b61007e565b6040516001600160a01b03909116815260200161004a565b5f80858585856040516100909061013a565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101ac565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a195945050505050565b611f15806101d283390190565b80356001600160a01b038116811461015d575f80fd5b919050565b5f805f8060808587031215610175575f80fd5b61017e85610147565b935061018c60208601610147565b9250604085013591506101a160608601610147565b905092959194509250565b808201808211156101cb57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a2646970667358221220cb4e3a6e691b53e04e67eb2732e22a8d54ade597e752b5e3270522c108b11f8c64736f6c63430008140033","sourceMap":"179:544:58:-:0;;;298:68;;;;;;;;;-1:-1:-1;327:32:58;;348:10;160:51:76;;327:32:58;;148:2:76;133:18;327:32:58;;;;;;;179:544;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610162565b61007e565b6040516001600160a01b03909116815260200161004a565b5f80858585856040516100909061013a565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101ac565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a195945050505050565b611f15806101d283390190565b80356001600160a01b038116811461015d575f80fd5b919050565b5f805f8060808587031215610175575f80fd5b61017e85610147565b935061018c60208601610147565b9250604085013591506101a160608601610147565b905092959194509250565b808201808211156101cb57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea26469706673582212206fbb7f06c63d3246ef19865be2e7a6d7ded577b5cbf9f4442d13d07c28cf3e8d64736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a2646970667358221220cb4e3a6e691b53e04e67eb2732e22a8d54ade597e752b5e3270522c108b11f8c64736f6c63430008140033","sourceMap":"179:544:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;372:349:58;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;946:32:76;;;928:51;;916:2;901:18;372:349:58;782:203:76;372:349:58;490:7;509:14;541:10;553:5;560:8;570:12;526:57;;;;;:::i;:::-;-1:-1:-1;;;;;1277:15:76;;;1259:34;;1329:15;;;1324:2;1309:18;;1302:43;1376:2;1361:18;;1354:34;;;;1424:15;;;1419:2;1404:18;;1397:43;1208:3;1193:19;526:57:58;;;;;;;;;;;;;;;;;;;;;;;509:74;;612:1;593:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;628:57:58;;;-1:-1:-1;;;;;1936:15:76;;1918:34;;667:4:58;1983:2:76;1968:18;;1961:43;674:10:58;2020:18:76;;;2013:43;628:57:58;;;;;;;1868:2:76;628:57:58;;;710:3;372:349;-1:-1:-1;;;;;372:349:58:o;-1:-1:-1:-;;;;;;;;:::o;196:173:76:-;264:20;;-1:-1:-1;;;;;313:31:76;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:403::-;460:6;468;476;484;537:3;525:9;516:7;512:23;508:33;505:53;;;554:1;551;544:12;505:53;577:29;596:9;577:29;:::i;:::-;567:39;;625:38;659:2;648:9;644:18;625:38;:::i;:::-;615:48;;710:2;699:9;695:18;682:32;672:42;;733:38;767:2;756:9;752:18;733:38;:::i;:::-;723:48;;374:403;;;;;;;:::o;1451:222::-;1516:9;;;1537:10;;;1534:133;;;1589:10;1584:3;1580:20;1577:1;1570:31;1624:4;1621:1;1614:15;1652:4;1649:1;1642:15;1534:133;1451:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"MarketFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREMarketFactory.sol\":\"OGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a\",\"dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREMarketFactory.sol\":{\"keccak256\":\"0xce7efcfca15f1383c6231f3e72ec5fc7051df256e0d8c98b2b0889521f2cc38d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a07248cba97efd3e2a0d17406dd14bf7b6e94111563a7188f93c60c37888341\",\"dweb:/ipfs/QmY2yi83BcN6JoM8JsBKK2J7efySrj844TKemkT3imNt5Q\"]},\"src/interfaces/IOGREMarketFactory.sol\":{\"keccak256\":\"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35\",\"dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"MarketFactoryCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREMarketFactory.sol":"OGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x0fad9fafb21b0634117c15e72534a09f97bc1e1108c2ef13ff11832c9cbf283d","urls":["bzz-raw://82e90a04f5d66185928dbb331bb8393d85cc135a6525b249c8bfd643b19eb84a","dweb:/ipfs/QmabwJZpYadTT2NqJ7QdgycyfbCYsmeBB6pDg7qoVJD6WY"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREMarketFactory.sol":{"keccak256":"0xce7efcfca15f1383c6231f3e72ec5fc7051df256e0d8c98b2b0889521f2cc38d","urls":["bzz-raw://9a07248cba97efd3e2a0d17406dd14bf7b6e94111563a7188f93c60c37888341","dweb:/ipfs/QmY2yi83BcN6JoM8JsBKK2J7efySrj844TKemkT3imNt5Q"],"license":"UNLICENSED"},"src/interfaces/IOGREMarketFactory.sol":{"keccak256":"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0","urls":["bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35","dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":58} \ No newline at end of file +{"abi":[{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506121168061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015c565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808585858560405161009090610134565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101a6565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a195945050505050565b611f15806101cc83390190565b80356001600160a01b0381168114610157575f80fd5b919050565b5f805f806080858703121561016f575f80fd5b61017885610141565b935061018660208601610141565b92506040850135915061019b60608601610141565b905092959194509250565b808201808211156101c557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a26469706673582212204d083a691053cc6248370b297c3f1e6ff5365e714c67e55be534aed05d7cb11d64736f6c63430008140033","sourceMap":"132:426:19:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015c565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808585858560405161009090610134565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101a6565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a195945050505050565b611f15806101cc83390190565b80356001600160a01b0381168114610157575f80fd5b919050565b5f805f806080858703121561016f575f80fd5b61017885610141565b935061018660208601610141565b92506040850135915061019b60608601610141565b905092959194509250565b808201808211156101c557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a26469706673582212204d083a691053cc6248370b297c3f1e6ff5365e714c67e55be534aed05d7cb11d64736f6c63430008140033","sourceMap":"132:426:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;181:375:19;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;946:32:30;;;928:51;;916:2;901:18;181:375:19;782:203:30;181:375:19;340:7;359:14;391:10;403:5;410:8;420:12;376:57;;;;;:::i;:::-;-1:-1:-1;;;;;1277:15:30;;;1259:34;;1329:15;;;1324:2;1309:18;;1302:43;1376:2;1361:18;;1354:34;;;;1424:15;;;1419:2;1404:18;;1397:43;1208:3;1193:19;376:57:19;;;;;;;;;;;;;;;;;;;;;;;359:74;;462:1;443:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;478:42:19;;;-1:-1:-1;;;;;1908:15:30;;1890:34;;509:10:19;1955:2:30;1940:18;;1933:43;478:42:19;;1825:18:30;478:42:19;;;;;;;545:3;181:375;-1:-1:-1;;;;;181:375:19:o;-1:-1:-1:-;;;;;;;;:::o;196:173:30:-;264:20;;-1:-1:-1;;;;;313:31:30;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:403::-;460:6;468;476;484;537:3;525:9;516:7;512:23;508:33;505:53;;;554:1;551;544:12;505:53;577:29;596:9;577:29;:::i;:::-;567:39;;625:38;659:2;648:9;644:18;625:38;:::i;:::-;615:48;;710:2;699:9;695:18;682:32;672:42;;733:38;767:2;756:9;752:18;733:38;:::i;:::-;723:48;;374:403;;;;;;;:::o;1451:222::-;1516:9;;;1537:10;;;1534:133;;;1589:10;1584:3;1580:20;1577:1;1570:31;1624:4;1621:1;1614:15;1652:4;1649:1;1642:15;1534:133;1451:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREMarketFactory.sol\":\"OGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead\",\"dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREMarketFactory.sol\":{\"keccak256\":\"0x20107135a13456627dff54a9233844727f7f20a9ed045c878c9d5ab7be065995\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://080c0f0341b0f258bbeb4ac98cfdd0d8974f309a5039e7a30d50771e916ca749\",\"dweb:/ipfs/QmemLmcQZUw7UDKfLSocSvQj4PfaTQyVdujDjPz5uQtkqo\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREMarketFactory.sol":"OGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0","urls":["bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead","dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREMarketFactory.sol":{"keccak256":"0x20107135a13456627dff54a9233844727f7f20a9ed045c878c9d5ab7be065995","urls":["bzz-raw://080c0f0341b0f258bbeb4ac98cfdd0d8974f309a5039e7a30d50771e916ca749","dweb:/ipfs/QmemLmcQZUw7UDKfLSocSvQj4PfaTQyVdujDjPz5uQtkqo"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/OGREProposal.sol/OGREProposal.json b/out/OGREProposal.sol/OGREProposal.json index e9f171f..b5fe697 100644 --- a/out/OGREProposal.sol/OGREProposal.json +++ b/out/OGREProposal.sol/OGREProposal.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"proposalTitle_","type":"string","internalType":"string"},{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelProposal","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"vote","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureProposal","inputs":[{"name":"isRevotable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeAction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revotable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProposalTitle","inputs":[{"name":"newProposalTitle","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newStartTime","type":"uint256","internalType":"uint256"},{"name":"newEndTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"voteTotals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"direction","type":"uint8","internalType":"uint8"},{"name":"voted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalResults","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StatusUpdated","inputs":[{"name":"newStatus","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"vote","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"InvalidStatus","inputs":[{"name":"currentStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"},{"name":"requiredStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033","sourceMap":"319:6986:45:-:0;;;2650:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2737:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1693:51:76;1666:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2841:13:45::1;:30;2857:14:::0;2841:13;:30:::1;:::i;:::-;-1:-1:-1::0;;;;;;2881:24:45;::::1;;::::0;2921:25:::1;::::0;::::1;::::0;::::1;::::0;4546:2:76;4528:21;;;4585:1;4565:18;;;4558:29;-1:-1:-1;;;4618:2:76;4603:18;;4596:38;4666:2;4651:18;;4344:331;2921:25:45::1;;;;;;;;2650:303:::0;;;319:6986;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:76;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1214::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:76;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:76;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1487:49;1532:2;1521:9;1517:18;1487:49;:::i;:::-;1477:59;;328:1214;;;;;:::o;1755:380::-;1834:1;1830:12;;;;1877;;;1898:61;;1952:4;1944:6;1940:17;1930:27;;1898:61;2005:2;1997:6;1994:14;1974:18;1971:38;1968:161;;2051:10;2046:3;2042:20;2039:1;2032:31;2086:4;2083:1;2076:15;2114:4;2111:1;2104:15;1968:161;;1755:380;;;:::o;2266:545::-;2368:2;2363:3;2360:11;2357:448;;;2404:1;2429:5;2425:2;2418:17;2474:4;2470:2;2460:19;2544:2;2532:10;2528:19;2525:1;2521:27;2515:4;2511:38;2580:4;2568:10;2565:20;2562:47;;;-1:-1:-1;2603:4:76;2562:47;2658:2;2653:3;2649:12;2646:1;2642:20;2636:4;2632:31;2622:41;;2713:82;2731:2;2724:5;2721:13;2713:82;;;2776:17;;;2757:1;2746:13;2713:82;;;2717:3;;;2357:448;2266:545;;;:::o;2987:1352::-;3107:10;;-1:-1:-1;;;;;3129:30:76;;3126:56;;;3162:18;;:::i;:::-;3191:97;3281:6;3241:38;3273:4;3267:11;3241:38;:::i;:::-;3235:4;3191:97;:::i;:::-;3343:4;;3407:2;3396:14;;3424:1;3419:663;;;;4126:1;4143:6;4140:89;;;-1:-1:-1;4195:19:76;;;4189:26;4140:89;-1:-1:-1;;2944:1:76;2940:11;;;2936:24;2932:29;2922:40;2968:1;2964:11;;;2919:57;4242:81;;3389:944;;3419:663;2213:1;2206:14;;;2250:4;2237:18;;-1:-1:-1;;3455:20:76;;;3573:236;3587:7;3584:1;3581:14;3573:236;;;3676:19;;;3670:26;3655:42;;3768:27;;;;3736:1;3724:14;;;;3603:19;;3573:236;;;3577:3;3837:6;3828:7;3825:19;3822:201;;;3898:19;;;3892:26;-1:-1:-1;;3981:1:76;3977:14;;;3993:3;3973:24;3969:37;3965:42;3950:58;3935:74;;3822:201;-1:-1:-1;;;;;4069:1:76;4053:14;;;4049:22;4036:36;;-1:-1:-1;2987:1352:76:o;4344:331::-;319:6986:45;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033","sourceMap":"319:6986:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:344;;;;;;:::i;:::-;;:::i;:::-;;1059:21;;;;;-1:-1:-1;;;1059:21:45;;;;;;;;;527:14:76;;520:22;502:41;;490:2;475:18;1059:21:45;;;;;;;;1124:34;;;;;;;;;;;;;;;;:::i;858:35::-;;;;;;;;-1:-1:-1;;;;;1321:32:76;;;1303:51;;1291:2;1276:18;858:35:45;1157:203:76;4081:348:45;;;;;;:::i;:::-;;:::i;1407:22::-;;;;;;;;;1764:25:76;;;1752:2;1737:18;1407:22:45;1618:177:76;5435:83:45;;;:::i;5037:326::-;;;;;;:::i;:::-;;:::i;6184:1118::-;;;;;;:::i;:::-;;:::i;3181:172::-;;;;;;:::i;:::-;;:::i;:::-;;;4405:4:76;4393:17;;;4375:36;;4363:2;4348:18;3181:172:45;4233:184:76;4837:114:45;;;;;;:::i;:::-;;:::i;1539:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4985:4:76;4973:17;;;4955:36;;5034:14;;5027:22;5022:2;5007:18;;5000:50;4928:18;1539:45:45;4791:265:76;2959:94:45;3032:7;:14;2959:94;;2293:101:2;;;:::i;1337:24:45:-;;;;;;1473:28;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;3471:254:45;;;:::i;5679:335::-;;;;;;:::i;:::-;;:::i;3059:116::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4576:136::-;;;;;;:::i;:::-;;:::i;1266:24::-;;;;;;1086:27;;;:::i;:::-;;;;;;;:::i;3359:106::-;;;;;;:::i;:::-;3415:4;3438:14;;;:5;:14;;;;;:20;;;;;;;3359:106;2543:215:2;;;;;;:::i;:::-;;:::i;3731:344:45:-;459:10;-1:-1:-1;;;;;473:10:45;459:24;;451:55;;;;-1:-1:-1;;;451:55:45;;7205:2:76;451:55:45;;;7187:21:76;7244:2;7224:18;;;7217:30;-1:-1:-1;;;7263:18:76;;;7256:48;7321:18;;451:55:45;;;;;;;;;4058:9:::1;4037:31;;;;;;;;;;:::i;:::-;4028:6;:40:::0;;-1:-1:-1;;4028:40:45::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;;;;3731:344:::0;:::o;4081:348::-;459:10;-1:-1:-1;;;;;473:10:45;459:24;;451:55;;;;-1:-1:-1;;;451:55:45;;7205:2:76;451:55:45;;;7187:21:76;7244:2;7224:18;;;7217:30;-1:-1:-1;;;7263:18:76;;;7256:48;7321:18;;451:55:45;7003:342:76;451:55:45;4413:9:::1;4390:7;4398:5;4390:14;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;:32;;;;4081:348:::0;;:::o;5435:83::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5498:7:::2;:13;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;5498:13:45;;;;;::::2;;::::0;;-1:-1:-1;;;;;;5498:13:45::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;;;;;;;;;5435:83::o:0;5037:326::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5286:43:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;5286:43:45;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;-1:-1:-1;5286:43:45;;;;;;5339:7:::2;:17:::0;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;5339:17:45::2;::::0;;;::::2;;::::0;;;;;;;;;5286:43;;;;5339:17;;;;;::::2;::::0;;::::2;:::i;:::-;-1:-1:-1::0;5339:17:45::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;::::2;:::i;:::-;;;;;;;;;;;;5154:209;5037:326:::0;;;;:::o;6184:1118::-;6416:29;6406:6;;;;:39;;;;;;;;:::i;:::-;;6398:65;;;;-1:-1:-1;;;6398:65:45;;12112:2:76;6398:65:45;;;12094:21:76;12151:2;12131:18;;;12124:30;-1:-1:-1;;;12170:18:76;;;12163:43;12223:18;;6398:65:45;11910:337:76;6398:65:45;6481:54;;-1:-1:-1;;;6481:54:45;;;;;12426:25:76;;;6524:10:45;12467:18:76;;;12460:60;6490:10:45;-1:-1:-1;;;;;6481:33:45;;;;12399:18:76;;6481:54:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6473:89;;;;-1:-1:-1;;;6473:89:45;;12983:2:76;6473:89:45;;;12965:21:76;13022:2;13002:18;;;12995:30;-1:-1:-1;;;13041:18:76;;;13034:52;13103:18;;6473:89:45;12781:346:76;6473:89:45;6588:1;6580:4;:9;;;;6572:73;;;;-1:-1:-1;;;6572:73:45;;13334:2:76;6572:73:45;;;13316:21:76;13373:2;13353:18;;;13346:30;13412:34;13392:18;;;13385:62;-1:-1:-1;;;13463:18:76;;;13456:49;13522:19;;6572:73:45;13132:415:76;6572:73:45;6682:9;;6663:15;:28;;6655:65;;;;-1:-1:-1;;;6655:65:45;;13754:2:76;6655:65:45;;;13736:21:76;13793:2;13773:18;;;13766:30;13832:26;13812:18;;;13805:54;13876:18;;6655:65:45;13552:348:76;6655:65:45;6757:7;;6738:15;:26;;6730:62;;;;-1:-1:-1;;;6730:62:45;;14107:2:76;6730:62:45;;;14089:21:76;14146:2;14126:18;;;14119:30;14185:25;14165:18;;;14158:53;14228:18;;6730:62:45;13905:347:76;6730:62:45;6842:14;;;;:5;:14;;;;;:20;;;;;;6837:329;;6891:1;6878:9;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;6926:1:45;;-1:-1:-1;6906:10:45;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6837:329:45;;-1:-1:-1;6837:329:45;;6988:9;;-1:-1:-1;;;6988:9:45;;;;6980:47;;;;-1:-1:-1;;;6980:47:45;;14721:2:76;6980:47:45;;;14703:21:76;14760:2;14740:18;;;14733:30;14799:27;14779:18;;;14772:55;14844:18;;6980:47:45;14519:349:76;6980:47:45;7052:14;;;;:5;:14;;;;;:24;7081:1;;7041:10;;7052:24;;7041:36;;;;;;;:::i;:::-;;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;7137:1:45;;-1:-1:-1;7117:10:45;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6837:329:45;7176:14;;;;:5;:14;;;;;;;;;:31;;;;;;-1:-1:-1;;7217:27:45;;;;;;;;;7260:35;;7269:10;15204:51:76;;15271:18;;;15264:34;;;15314:18;;;15307:45;7260:35:45;;;;;;;15192:2:76;7260:35:45;;;6184:1118;;:::o;3181:172::-;3236:5;3261:14;;;:5;:14;;;;;:20;;;;;;3253:52;;;;-1:-1:-1;;;3253:52:45;;15565:2:76;3253:52:45;;;15547:21:76;15604:2;15584:18;;;15577:30;-1:-1:-1;;;15623:18:76;;;15616:49;15682:18;;3253:52:45;15363:343:76;3253:52:45;-1:-1:-1;3322:14:45;;;;:5;:14;;;;;:24;;;;3181:172::o;4837:114::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;4921:9:::2;:23:::0;;;::::2;;-1:-1:-1::0;;;4921:23:45::2;-1:-1:-1::0;;;;4921:23:45;;::::2;::::0;;;::::2;::::0;;4837:114::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1473:28:45:-;;;;;;;;;;;;;;;-1:-1:-1;1473:28:45;:::o;3471:254::-;1531:13:2;:11;:13::i;:::-;3538:29:45::1;3528:6;::::0;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;;3524:104;;3590:6;::::0;3576:52:::1;::::0;-1:-1:-1;;;3576:52:45;;::::1;::::0;3590:6:::1;;::::0;::::1;::::0;3576:52:::1;;;:::i;3524:104::-;3638:6;:39:::0;;-1:-1:-1;;3638:39:45::1;3647:30;3638:39;::::0;;3692:26:::1;::::0;;16250:2:76;16232:21;;;16289:1;16269:18;;;16262:29;-1:-1:-1;;;16307:18:76;;;16300:39;3692:26:45;;::::1;::::0;16371:2:76;3692:26:45;;;;;;::::1;3471:254::o:0;5679:335::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;5809:15:::2;5793:12;:31;;5785:76;;;::::0;-1:-1:-1;;;5785:76:45;;16587:2:76;5785:76:45::2;::::0;::::2;16569:21:76::0;;;16606:18;;;16599:30;16665:34;16645:18;;;16638:62;16717:18;;5785:76:45::2;16385:356:76::0;5785:76:45::2;5892:12;5879:10;:25;5871:71;;;::::0;-1:-1:-1;;;5871:71:45;;16948:2:76;5871:71:45::2;::::0;::::2;16930:21:76::0;16987:2;16967:18;;;16960:30;17026:34;17006:18;;;16999:62;-1:-1:-1;;;17077:18:76;;;17070:31;17118:19;;5871:71:45::2;16746:397:76::0;5871:71:45::2;5953:9;:24:::0;;;;5987:7:::2;:20:::0;5679:335::o;3059:116::-;3114:21;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3114:21:45;3154:7;3162:5;3154:14;;;;;;;;:::i;:::-;;;;;;;;;;;3147:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3147:21:45;-1:-1:-1;;;;;3147:21:45;-1:-1:-1;;;;;3147:21:45;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3059:116;;;:::o;4576:136::-;1531:13:2;:11;:13::i;:::-;631:9:45::1;::::0;:14;;:45:::1;;;667:9;;649:15;:27;631:45;623:81;;;;-1:-1:-1::0;;;623:81:45::1;;;;;;;:::i;:::-;4673:13:::2;:32;4689:16:::0;4673:13;:32:::2;:::i;:::-;;4576:136:::0;:::o;1086:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1303:51:76::0;1276:18;;2672:31:2::1;1157:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1303:51:76;1276:18;;1901:40:2;1157:203:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:156:76:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:182::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;324:27;341:9;324:27;:::i;:::-;314:37;175:182;-1:-1:-1;;;175:182:76:o;554:127::-;615:10;610:3;606:20;603:1;596:31;646:4;643:1;636:15;670:4;667:1;660:15;686:242;772:1;765:5;762:12;752:143;;817:10;812:3;808:20;805:1;798:31;852:4;849:1;842:15;880:4;877:1;870:15;752:143;904:18;;686:242::o;933:219::-;1085:2;1070:18;;1097:49;1074:9;1128:6;1097:49;:::i;:::-;933:219;;;;:::o;1365:248::-;1433:6;1441;1494:2;1482:9;1473:7;1469:23;1465:32;1462:52;;;1510:1;1507;1500:12;1462:52;-1:-1:-1;;1533:23:76;;;1603:2;1588:18;;;1575:32;;-1:-1:-1;1365:248:76:o;1800:173::-;1868:20;;-1:-1:-1;;;;;1917:31:76;;1907:42;;1897:70;;1963:1;1960;1953:12;1978:127;2039:10;2034:3;2030:20;2027:1;2020:31;2070:4;2067:1;2060:15;2094:4;2091:1;2084:15;2110:632;2175:5;2205:18;2246:2;2238:6;2235:14;2232:40;;;2252:18;;:::i;:::-;2327:2;2321:9;2295:2;2381:15;;-1:-1:-1;;2377:24:76;;;2403:2;2373:33;2369:42;2357:55;;;2427:18;;;2447:22;;;2424:46;2421:72;;;2473:18;;:::i;:::-;2513:10;2509:2;2502:22;2542:6;2533:15;;2572:6;2564;2557:22;2612:3;2603:6;2598:3;2594:16;2591:25;2588:45;;;2629:1;2626;2619:12;2588:45;2679:6;2674:3;2667:4;2659:6;2655:17;2642:44;2734:1;2727:4;2718:6;2710;2706:19;2702:30;2695:41;;;;2110:632;;;;;:::o;2747:222::-;2790:5;2843:3;2836:4;2828:6;2824:17;2820:27;2810:55;;2861:1;2858;2851:12;2810:55;2883:80;2959:3;2950:6;2937:20;2930:4;2922:6;2918:17;2883:80;:::i;2974:814::-;3079:6;3087;3095;3103;3156:3;3144:9;3135:7;3131:23;3127:33;3124:53;;;3173:1;3170;3163:12;3124:53;3196:29;3215:9;3196:29;:::i;:::-;3186:39;;3272:2;3261:9;3257:18;3244:32;3234:42;;3327:2;3316:9;3312:18;3299:32;3350:18;3391:2;3383:6;3380:14;3377:34;;;3407:1;3404;3397:12;3377:34;3430:50;3472:7;3463:6;3452:9;3448:22;3430:50;:::i;:::-;3420:60;;3533:2;3522:9;3518:18;3505:32;3489:48;;3562:2;3552:8;3549:16;3546:36;;;3578:1;3575;3568:12;3546:36;-1:-1:-1;3601:24:76;;3656:4;3648:13;;3644:27;-1:-1:-1;3634:55:76;;3685:1;3682;3675:12;3634:55;3708:74;3774:7;3769:2;3756:16;3751:2;3747;3743:11;3708:74;:::i;:::-;3698:84;;;2974:814;;;;;;;:::o;3793:250::-;3859:6;3867;3920:2;3908:9;3899:7;3895:23;3891:32;3888:52;;;3936:1;3933;3926:12;3888:52;3972:9;3959:23;3949:33;;4001:36;4033:2;4022:9;4018:18;4001:36;:::i;:::-;3991:46;;3793:250;;;;;:::o;4048:180::-;4107:6;4160:2;4148:9;4139:7;4135:23;4131:32;4128:52;;;4176:1;4173;4166:12;4128:52;-1:-1:-1;4199:23:76;;4048:180;-1:-1:-1;4048:180:76:o;4422:118::-;4508:5;4501:13;4494:21;4487:5;4484:32;4474:60;;4530:1;4527;4520:12;4545:241;4601:6;4654:2;4642:9;4633:7;4629:23;4625:32;4622:52;;;4670:1;4667;4660:12;4622:52;4709:9;4696:23;4728:28;4750:5;4728:28;:::i;5061:423::-;5103:3;5141:5;5135:12;5168:6;5163:3;5156:19;5193:1;5203:162;5217:6;5214:1;5211:13;5203:162;;;5279:4;5335:13;;;5331:22;;5325:29;5307:11;;;5303:20;;5296:59;5232:12;5203:162;;;5207:3;5410:1;5403:4;5394:6;5389:3;5385:16;5381:27;5374:38;5473:4;5466:2;5462:7;5457:2;5449:6;5445:15;5441:29;5436:3;5432:39;5428:50;5421:57;;;5061:423;;;;:::o;5489:766::-;5668:2;5657:9;5650:21;5743:1;5739;5734:3;5730:11;5726:19;5717:6;5711:13;5707:39;5702:2;5691:9;5687:18;5680:67;5801:2;5793:6;5789:15;5783:22;5778:2;5767:9;5763:18;5756:50;5631:4;5853:2;5845:6;5841:15;5835:22;5893:4;5888:2;5877:9;5873:18;5866:32;5921:52;5968:3;5957:9;5953:19;5939:12;5921:52;:::i;:::-;5907:66;;6022:2;6014:6;6010:15;6004:22;6095:2;6091:7;6079:9;6071:6;6067:22;6063:36;6057:3;6046:9;6042:19;6035:65;6123:41;6157:6;6141:14;6123:41;:::i;:::-;6109:55;;;6220:3;6212:6;6208:16;6202:23;6195:4;6184:9;6180:20;6173:53;6243:6;6235:14;;;5489:766;;;;:::o;6260:322::-;6329:6;6382:2;6370:9;6361:7;6357:23;6353:32;6350:52;;;6398:1;6395;6388:12;6350:52;6438:9;6425:23;6471:18;6463:6;6460:30;6457:50;;;6503:1;6500;6493:12;6457:50;6526;6568:7;6559:6;6548:9;6544:22;6526:50;:::i;:::-;6516:60;6260:322;-1:-1:-1;;;;6260:322:76:o;6587:220::-;6736:2;6725:9;6718:21;6699:4;6756:45;6797:2;6786:9;6782:18;6774:6;6756:45;:::i;6812:186::-;6871:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:52;;;6940:1;6937;6930:12;6892:52;6963:29;6982:9;6963:29;:::i;7350:127::-;7411:10;7406:3;7402:20;7399:1;7392:31;7442:4;7439:1;7432:15;7466:4;7463:1;7456:15;7482:347;7684:2;7666:21;;;7723:2;7703:18;;;7696:30;7762:25;7757:2;7742:18;;7735:53;7820:2;7805:18;;7482:347::o;7834:127::-;7895:10;7890:3;7886:20;7883:1;7876:31;7926:4;7923:1;7916:15;7950:4;7947:1;7940:15;7966:380;8045:1;8041:12;;;;8088;;;8109:61;;8163:4;8155:6;8151:17;8141:27;;8109:61;8216:2;8208:6;8205:14;8185:18;8182:38;8179:161;;8262:10;8257:3;8253:20;8250:1;8243:31;8297:4;8294:1;8287:15;8325:4;8322:1;8315:15;8179:161;;7966:380;;;:::o;8477:545::-;8579:2;8574:3;8571:11;8568:448;;;8615:1;8640:5;8636:2;8629:17;8685:4;8681:2;8671:19;8755:2;8743:10;8739:19;8736:1;8732:27;8726:4;8722:38;8791:4;8779:10;8776:20;8773:47;;;-1:-1:-1;8814:4:76;8773:47;8869:2;8864:3;8860:12;8857:1;8853:20;8847:4;8843:31;8833:41;;8924:82;8942:2;8935:5;8932:13;8924:82;;;8987:17;;;8968:1;8957:13;8924:82;;;8928:3;;;8568:448;8477:545;;;:::o;9198:1352::-;9324:3;9318:10;9351:18;9343:6;9340:30;9337:56;;;9373:18;;:::i;:::-;9402:97;9492:6;9452:38;9484:4;9478:11;9452:38;:::i;:::-;9446:4;9402:97;:::i;:::-;9554:4;;9618:2;9607:14;;9635:1;9630:663;;;;10337:1;10354:6;10351:89;;;-1:-1:-1;10406:19:76;;;10400:26;10351:89;-1:-1:-1;;9155:1:76;9151:11;;;9147:24;9143:29;9133:40;9179:1;9175:11;;;9130:57;10453:81;;9600:944;;9630:663;8424:1;8417:14;;;8461:4;8448:18;;-1:-1:-1;;9666:20:76;;;9784:236;9798:7;9795:1;9792:14;9784:236;;;9887:19;;;9881:26;9866:42;;9979:27;;;;9947:1;9935:14;;;;9814:19;;9784:236;;;9788:3;10048:6;10039:7;10036:19;10033:201;;;10109:19;;;10103:26;-1:-1:-1;;10192:1:76;10188:14;;;10204:3;10184:24;10180:37;10176:42;10161:58;10146:74;;10033:201;-1:-1:-1;;;;;10280:1:76;10264:14;;;10260:22;10247:36;;-1:-1:-1;9198:1352:76:o;12531:245::-;12598:6;12651:2;12639:9;12630:7;12626:23;12622:32;12619:52;;;12667:1;12664;12657:12;12619:52;12699:9;12693:16;12718:28;12740:5;12718:28;:::i;14257:127::-;14318:10;14313:3;14309:20;14306:1;14299:31;14349:4;14346:1;14339:15;14373:4;14370:1;14363:15;14389:125;14454:9;;;14475:10;;;14472:36;;;14488:18;;:::i;14873:128::-;14940:9;;;14961:11;;;14958:37;;;14975:18;;:::i;15711:332::-;15909:2;15894:18;;15921:49;15898:9;15952:6;15921:49;:::i;:::-;15979:58;16033:2;16022:9;16018:18;16010:6;15979:58;:::i","linkReferences":{},"immutableReferences":{"48798":[{"start":461,"length":32},{"start":968,"length":32},{"start":1139,"length":32},{"start":1850,"length":32}]}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","cancelProposal()":"9070577f","castVote(uint256,uint8)":"56781388","configureProposal(bool)":"5b4d2f85","daoAddress()":"2131c68c","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","getVote(uint256)":"5a55c1f0","hasVoted(uint256)":"ecca031f","owner()":"8da5cb5b","proposalTitle()":"e5045752","removeAction()":"421e4444","renounceOwnership()":"715018a6","revotable()":"0c8ba758","setActionReady(uint256,uint256)":"280b0c87","setProposalTitle(string)":"baceec7a","setVotingPeriod(uint256,uint256)":"a15a36c7","startTime()":"78e97925","status()":"200d2ed2","transferOwnership(address)":"f2fde38b","updateStatus(uint8)":"0b3af7f9","voteCount()":"c6384071","voteTotals(uint256)":"814a1d8e","votes(uint256)":"5df81330"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"currentStatus\",\"type\":\"uint8\"},{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"requiredStatus\",\"type\":\"uint8\"}],\"name\":\"InvalidStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalResults\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newStatus\",\"type\":\"string\"}],\"name\":\"StatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isRevotable\",\"type\":\"bool\"}],\"name\":\"configureProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getVote\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newProposalTitle\",\"type\":\"string\"}],\"name\":\"setProposalTitle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newEndTime\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"direction\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"StatusUpdated(string)\":{\"params\":{\"newStatus\":\"new status of proposal\"}},\"VoteCast(address,uint256,uint8)\":{\"params\":{\"tokenId\":\"id of nft token granting vote\",\"vote\":\"direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN)\",\"voter\":\"address that cast the vote\"}}},\"kind\":\"dev\",\"methods\":{\"addAction(address,uint256,string,bytes)\":{\"details\":\"pushes a new action to the end of the actions queue\"},\"castVote(uint256,uint8)\":{\"details\":\"casts a vote\",\"params\":{\"tokenId\":\"id of token casting votes\",\"vote\":\"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)\"}},\"configureProposal(bool)\":{\"details\":\"configures proposal settings\",\"params\":{\"isRevotable\":\"allows revoting on proposal if true\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeAction()\":{\"details\":\"removes action at end of action queue\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProposalTitle(string)\":{\"details\":\"sets proposal title\",\"params\":{\"newProposalTitle\":\"new proposal title\"}},\"setVotingPeriod(uint256,uint256)\":{\"details\":\"sets voting start and end time\",\"params\":{\"newEndTime\":\"time voting will end\",\"newStartTime\":\"time voting will start\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Proposal Contract\",\"version\":1},\"userdoc\":{\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"StatusUpdated(string)\":{\"notice\":\"logs a change in proposal status.\"},\"VoteCast(address,uint256,uint8)\":{\"notice\":\"logs a vote\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREProposal.sol\":\"OGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957\",\"dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"proposalTitle_","type":"string"},{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Enums.ProposalStatus","name":"currentStatus","type":"uint8"},{"internalType":"enum Enums.ProposalStatus","name":"requiredStatus","type":"uint8"}],"type":"error","name":"InvalidStatus"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalResults","anonymous":false},{"inputs":[{"internalType":"string","name":"newStatus","type":"string","indexed":false}],"type":"event","name":"StatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint8","name":"vote","type":"uint8","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint8","name":"vote","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[{"internalType":"bool","name":"isRevotable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"configureProposal"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVote","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"removeAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"revotable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[{"internalType":"string","name":"newProposalTitle","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setProposalTitle"},{"inputs":[{"internalType":"uint256","name":"newStartTime","type":"uint256"},{"internalType":"uint256","name":"newEndTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[],"stateMutability":"view","type":"function","name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"uint8","name":"direction","type":"uint8"},{"internalType":"bool","name":"voted","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addAction(address,uint256,string,bytes)":{"details":"pushes a new action to the end of the actions queue"},"castVote(uint256,uint8)":{"details":"casts a vote","params":{"tokenId":"id of token casting votes","vote":"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)"}},"configureProposal(bool)":{"details":"configures proposal settings","params":{"isRevotable":"allows revoting on proposal if true"}},"owner()":{"details":"Returns the address of the current owner."},"removeAction()":{"details":"removes action at end of action queue"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setProposalTitle(string)":{"details":"sets proposal title","params":{"newProposalTitle":"new proposal title"}},"setVotingPeriod(uint256,uint256)":{"details":"sets voting start and end time","params":{"newEndTime":"time voting will end","newStartTime":"time voting will start"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREProposal.sol":"OGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af","urls":["bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957","dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":45} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"proposalTitle_","type":"string","internalType":"string"},{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelProposal","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"vote","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureProposal","inputs":[{"name":"isRevotable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeAction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revotable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProposalTitle","inputs":[{"name":"newProposalTitle","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newStartTime","type":"uint256","internalType":"uint256"},{"name":"newEndTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"voteTotals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"direction","type":"uint8","internalType":"uint8"},{"name":"voted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalResults","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StatusUpdated","inputs":[{"name":"newStatus","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"vote","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"InvalidStatus","inputs":[{"name":"currentStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"},{"name":"requiredStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033","sourceMap":"320:6986:13:-:0;;;2651:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2738:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1693:51:30;1666:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2842:13:13::1;:30;2858:14:::0;2842:13;:30:::1;:::i;:::-;-1:-1:-1::0;;;;;;2882:24:13;::::1;;::::0;2922:25:::1;::::0;::::1;::::0;::::1;::::0;4546:2:30;4528:21;;;4585:1;4565:18;;;4558:29;-1:-1:-1;;;4618:2:30;4603:18;;4596:38;4666:2;4651:18;;4344:331;2922:25:13::1;;;;;;;;2651:303:::0;;;320:6986;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:30:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:30;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1214::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:30;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:30;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1487:49;1532:2;1521:9;1517:18;1487:49;:::i;:::-;1477:59;;328:1214;;;;;:::o;1755:380::-;1834:1;1830:12;;;;1877;;;1898:61;;1952:4;1944:6;1940:17;1930:27;;1898:61;2005:2;1997:6;1994:14;1974:18;1971:38;1968:161;;2051:10;2046:3;2042:20;2039:1;2032:31;2086:4;2083:1;2076:15;2114:4;2111:1;2104:15;1968:161;;1755:380;;;:::o;2266:545::-;2368:2;2363:3;2360:11;2357:448;;;2404:1;2429:5;2425:2;2418:17;2474:4;2470:2;2460:19;2544:2;2532:10;2528:19;2525:1;2521:27;2515:4;2511:38;2580:4;2568:10;2565:20;2562:47;;;-1:-1:-1;2603:4:30;2562:47;2658:2;2653:3;2649:12;2646:1;2642:20;2636:4;2632:31;2622:41;;2713:82;2731:2;2724:5;2721:13;2713:82;;;2776:17;;;2757:1;2746:13;2713:82;;;2717:3;;;2357:448;2266:545;;;:::o;2987:1352::-;3107:10;;-1:-1:-1;;;;;3129:30:30;;3126:56;;;3162:18;;:::i;:::-;3191:97;3281:6;3241:38;3273:4;3267:11;3241:38;:::i;:::-;3235:4;3191:97;:::i;:::-;3343:4;;3407:2;3396:14;;3424:1;3419:663;;;;4126:1;4143:6;4140:89;;;-1:-1:-1;4195:19:30;;;4189:26;4140:89;-1:-1:-1;;2944:1:30;2940:11;;;2936:24;2932:29;2922:40;2968:1;2964:11;;;2919:57;4242:81;;3389:944;;3419:663;2213:1;2206:14;;;2250:4;2237:18;;-1:-1:-1;;3455:20:30;;;3573:236;3587:7;3584:1;3581:14;3573:236;;;3676:19;;;3670:26;3655:42;;3768:27;;;;3736:1;3724:14;;;;3603:19;;3573:236;;;3577:3;3837:6;3828:7;3825:19;3822:201;;;3898:19;;;3892:26;-1:-1:-1;;3981:1:30;3977:14;;;3993:3;3973:24;3969:37;3965:42;3950:58;3935:74;;3822:201;-1:-1:-1;;;;;4069:1:30;4053:14;;;4049:22;4036:36;;-1:-1:-1;2987:1352:30:o;4344:331::-;320:6986:13;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033","sourceMap":"320:6986:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3732:344;;;;;;:::i;:::-;;:::i;:::-;;1060:21;;;;;-1:-1:-1;;;1060:21:13;;;;;;;;;527:14:30;;520:22;502:41;;490:2;475:18;1060:21:13;;;;;;;;1125:34;;;;;;;;;;;;;;;;:::i;859:35::-;;;;;;;;-1:-1:-1;;;;;1320:32:30;;;1302:51;;1290:2;1275:18;859:35:13;1156:203:30;4082:348:13;;;;;;:::i;:::-;;:::i;1408:22::-;;;;;;;;;1763:25:30;;;1751:2;1736:18;1408:22:13;1617:177:30;5436:83:13;;;:::i;5038:326::-;;;;;;:::i;:::-;;:::i;6185:1118::-;;;;;;:::i;:::-;;:::i;3182:172::-;;;;;;:::i;:::-;;:::i;:::-;;;4404:4:30;4392:17;;;4374:36;;4362:2;4347:18;3182:172:13;4232:184:30;4838:114:13;;;;;;:::i;:::-;;:::i;1540:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4984:4:30;4972:17;;;4954:36;;5033:14;;5026:22;5021:2;5006:18;;4999:50;4927:18;1540:45:13;4790:265:30;2960:94:13;3033:7;:14;2960:94;;2293:101:2;;;:::i;1338:24:13:-;;;;;;1474:28;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;3472:254:13;;;:::i;5680:335::-;;;;;;:::i;:::-;;:::i;3060:116::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4577:136::-;;;;;;:::i;:::-;;:::i;1267:24::-;;;;;;1087:27;;;:::i;:::-;;;;;;;:::i;3360:106::-;;;;;;:::i;:::-;3416:4;3439:14;;;:5;:14;;;;;:20;;;;;;;3360:106;2543:215:2;;;;;;:::i;:::-;;:::i;3732:344:13:-;460:10;-1:-1:-1;;;;;474:10:13;460:24;;452:55;;;;-1:-1:-1;;;452:55:13;;7202:2:30;452:55:13;;;7184:21:30;7241:2;7221:18;;;7214:30;-1:-1:-1;;;7260:18:30;;;7253:48;7318:18;;452:55:13;;;;;;;;;4059:9:::1;4038:31;;;;;;;;;;:::i;:::-;4029:6;:40:::0;;-1:-1:-1;;4029:40:13::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;;;;3732:344:::0;:::o;4082:348::-;460:10;-1:-1:-1;;;;;474:10:13;460:24;;452:55;;;;-1:-1:-1;;;452:55:13;;7202:2:30;452:55:13;;;7184:21:30;7241:2;7221:18;;;7214:30;-1:-1:-1;;;7260:18:30;;;7253:48;7318:18;;452:55:13;7000:342:30;452:55:13;4414:9:::1;4391:7;4399:5;4391:14;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;:32;;;;4082:348:::0;;:::o;5436:83::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5499:7:::2;:13;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;5499:13:13;;;;;::::2;;::::0;;-1:-1:-1;;;;;;5499:13:13::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;;;;;;;;;5436:83::o:0;5038:326::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5287:43:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;5287:43:13;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;-1:-1:-1;5287:43:13;;;;;;5340:7:::2;:17:::0;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;5340:17:13::2;::::0;;;::::2;;::::0;;;;;;;;;5287:43;;;;5340:17;;;;;::::2;::::0;;::::2;:::i;:::-;-1:-1:-1::0;5340:17:13::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;::::2;:::i;:::-;;;;;;;;;;;;5155:209;5038:326:::0;;;;:::o;6185:1118::-;6417:29;6407:6;;;;:39;;;;;;;;:::i;:::-;;6399:65;;;;-1:-1:-1;;;6399:65:13;;12109:2:30;6399:65:13;;;12091:21:30;12148:2;12128:18;;;12121:30;-1:-1:-1;;;12167:18:30;;;12160:43;12220:18;;6399:65:13;11907:337:30;6399:65:13;6482:54;;-1:-1:-1;;;6482:54:13;;;;;12423:25:30;;;6525:10:13;12464:18:30;;;12457:60;6491:10:13;-1:-1:-1;;;;;6482:33:13;;;;12396:18:30;;6482:54:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6474:89;;;;-1:-1:-1;;;6474:89:13;;12980:2:30;6474:89:13;;;12962:21:30;13019:2;12999:18;;;12992:30;-1:-1:-1;;;13038:18:30;;;13031:52;13100:18;;6474:89:13;12778:346:30;6474:89:13;6589:1;6581:4;:9;;;;6573:73;;;;-1:-1:-1;;;6573:73:13;;13331:2:30;6573:73:13;;;13313:21:30;13370:2;13350:18;;;13343:30;13409:34;13389:18;;;13382:62;-1:-1:-1;;;13460:18:30;;;13453:49;13519:19;;6573:73:13;13129:415:30;6573:73:13;6683:9;;6664:15;:28;;6656:65;;;;-1:-1:-1;;;6656:65:13;;13751:2:30;6656:65:13;;;13733:21:30;13790:2;13770:18;;;13763:30;13829:26;13809:18;;;13802:54;13873:18;;6656:65:13;13549:348:30;6656:65:13;6758:7;;6739:15;:26;;6731:62;;;;-1:-1:-1;;;6731:62:13;;14104:2:30;6731:62:13;;;14086:21:30;14143:2;14123:18;;;14116:30;14182:25;14162:18;;;14155:53;14225:18;;6731:62:13;13902:347:30;6731:62:13;6843:14;;;;:5;:14;;;;;:20;;;;;;6838:329;;6892:1;6879:9;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;6927:1:13;;-1:-1:-1;6907:10:13;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6838:329:13;;-1:-1:-1;6838:329:13;;6989:9;;-1:-1:-1;;;6989:9:13;;;;6981:47;;;;-1:-1:-1;;;6981:47:13;;14718:2:30;6981:47:13;;;14700:21:30;14757:2;14737:18;;;14730:30;14796:27;14776:18;;;14769:55;14841:18;;6981:47:13;14516:349:30;6981:47:13;7053:14;;;;:5;:14;;;;;:24;7082:1;;7042:10;;7053:24;;7042:36;;;;;;;:::i;:::-;;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;7138:1:13;;-1:-1:-1;7118:10:13;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6838:329:13;7177:14;;;;:5;:14;;;;;;;;;:31;;;;;;-1:-1:-1;;7218:27:13;;;;;;;;;7261:35;;7270:10;15201:51:30;;15268:18;;;15261:34;;;15311:18;;;15304:45;7261:35:13;;;;;;;15189:2:30;7261:35:13;;;6185:1118;;:::o;3182:172::-;3237:5;3262:14;;;:5;:14;;;;;:20;;;;;;3254:52;;;;-1:-1:-1;;;3254:52:13;;15562:2:30;3254:52:13;;;15544:21:30;15601:2;15581:18;;;15574:30;-1:-1:-1;;;15620:18:30;;;15613:49;15679:18;;3254:52:13;15360:343:30;3254:52:13;-1:-1:-1;3323:14:13;;;;:5;:14;;;;;:24;;;;3182:172::o;4838:114::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;4922:9:::2;:23:::0;;;::::2;;-1:-1:-1::0;;;4922:23:13::2;-1:-1:-1::0;;;;4922:23:13;;::::2;::::0;;;::::2;::::0;;4838:114::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1474:28:13:-;;;;;;;;;;;;;;;-1:-1:-1;1474:28:13;:::o;3472:254::-;1531:13:2;:11;:13::i;:::-;3539:29:13::1;3529:6;::::0;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;;3525:104;;3591:6;::::0;3577:52:::1;::::0;-1:-1:-1;;;3577:52:13;;::::1;::::0;3591:6:::1;;::::0;::::1;::::0;3577:52:::1;;;:::i;3525:104::-;3639:6;:39:::0;;-1:-1:-1;;3639:39:13::1;3648:30;3639:39;::::0;;3693:26:::1;::::0;;16245:2:30;16227:21;;;16284:1;16264:18;;;16257:29;-1:-1:-1;;;16302:18:30;;;16295:39;3693:26:13;;::::1;::::0;16366:2:30;3693:26:13;;;;;;::::1;3472:254::o:0;5680:335::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5810:15:::2;5794:12;:31;;5786:76;;;::::0;-1:-1:-1;;;5786:76:13;;16582:2:30;5786:76:13::2;::::0;::::2;16564:21:30::0;;;16601:18;;;16594:30;16660:34;16640:18;;;16633:62;16712:18;;5786:76:13::2;16380:356:30::0;5786:76:13::2;5893:12;5880:10;:25;5872:71;;;::::0;-1:-1:-1;;;5872:71:13;;16943:2:30;5872:71:13::2;::::0;::::2;16925:21:30::0;16982:2;16962:18;;;16955:30;17021:34;17001:18;;;16994:62;-1:-1:-1;;;17072:18:30;;;17065:31;17113:19;;5872:71:13::2;16741:397:30::0;5872:71:13::2;5954:9;:24:::0;;;;5988:7:::2;:20:::0;5680:335::o;3060:116::-;3115:21;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3115:21:13;3155:7;3163:5;3155:14;;;;;;;;:::i;:::-;;;;;;;;;;;3148:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3148:21:13;-1:-1:-1;;;;;3148:21:13;-1:-1:-1;;;;;3148:21:13;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3060:116;;;:::o;4577:136::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;4674:13:::2;:32;4690:16:::0;4674:13;:32:::2;:::i;:::-;;4577:136:::0;:::o;1087:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1302:51:30::0;1275:18;;2672:31:2::1;1156:203:30::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:6;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:6;1901:40:2;;;1302:51:30;1275:18;;1901:40:2;1156:203:30;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:156:30:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:182::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;324:27;341:9;324:27;:::i;:::-;314:37;175:182;-1:-1:-1;;;175:182:30:o;554:127::-;615:10;610:3;606:20;603:1;596:31;646:4;643:1;636:15;670:4;667:1;660:15;686:242;772:1;765:5;762:12;752:143;;817:10;812:3;808:20;805:1;798:31;852:4;849:1;842:15;880:4;877:1;870:15;752:143;904:18;;686:242::o;933:218::-;1084:2;1069:18;;1096:49;1073:9;1127:6;1096:49;:::i;:::-;933:218;;;;:::o;1364:248::-;1432:6;1440;1493:2;1481:9;1472:7;1468:23;1464:32;1461:52;;;1509:1;1506;1499:12;1461:52;-1:-1:-1;;1532:23:30;;;1602:2;1587:18;;;1574:32;;-1:-1:-1;1364:248:30:o;1799:173::-;1867:20;;-1:-1:-1;;;;;1916:31:30;;1906:42;;1896:70;;1962:1;1959;1952:12;1977:127;2038:10;2033:3;2029:20;2026:1;2019:31;2069:4;2066:1;2059:15;2093:4;2090:1;2083:15;2109:632;2174:5;2204:18;2245:2;2237:6;2234:14;2231:40;;;2251:18;;:::i;:::-;2326:2;2320:9;2294:2;2380:15;;-1:-1:-1;;2376:24:30;;;2402:2;2372:33;2368:42;2356:55;;;2426:18;;;2446:22;;;2423:46;2420:72;;;2472:18;;:::i;:::-;2512:10;2508:2;2501:22;2541:6;2532:15;;2571:6;2563;2556:22;2611:3;2602:6;2597:3;2593:16;2590:25;2587:45;;;2628:1;2625;2618:12;2587:45;2678:6;2673:3;2666:4;2658:6;2654:17;2641:44;2733:1;2726:4;2717:6;2709;2705:19;2701:30;2694:41;;;;2109:632;;;;;:::o;2746:222::-;2789:5;2842:3;2835:4;2827:6;2823:17;2819:27;2809:55;;2860:1;2857;2850:12;2809:55;2882:80;2958:3;2949:6;2936:20;2929:4;2921:6;2917:17;2882:80;:::i;2973:814::-;3078:6;3086;3094;3102;3155:3;3143:9;3134:7;3130:23;3126:33;3123:53;;;3172:1;3169;3162:12;3123:53;3195:29;3214:9;3195:29;:::i;:::-;3185:39;;3271:2;3260:9;3256:18;3243:32;3233:42;;3326:2;3315:9;3311:18;3298:32;3349:18;3390:2;3382:6;3379:14;3376:34;;;3406:1;3403;3396:12;3376:34;3429:50;3471:7;3462:6;3451:9;3447:22;3429:50;:::i;:::-;3419:60;;3532:2;3521:9;3517:18;3504:32;3488:48;;3561:2;3551:8;3548:16;3545:36;;;3577:1;3574;3567:12;3545:36;-1:-1:-1;3600:24:30;;3655:4;3647:13;;3643:27;-1:-1:-1;3633:55:30;;3684:1;3681;3674:12;3633:55;3707:74;3773:7;3768:2;3755:16;3750:2;3746;3742:11;3707:74;:::i;:::-;3697:84;;;2973:814;;;;;;;:::o;3792:250::-;3858:6;3866;3919:2;3907:9;3898:7;3894:23;3890:32;3887:52;;;3935:1;3932;3925:12;3887:52;3971:9;3958:23;3948:33;;4000:36;4032:2;4021:9;4017:18;4000:36;:::i;:::-;3990:46;;3792:250;;;;;:::o;4047:180::-;4106:6;4159:2;4147:9;4138:7;4134:23;4130:32;4127:52;;;4175:1;4172;4165:12;4127:52;-1:-1:-1;4198:23:30;;4047:180;-1:-1:-1;4047:180:30:o;4421:118::-;4507:5;4500:13;4493:21;4486:5;4483:32;4473:60;;4529:1;4526;4519:12;4544:241;4600:6;4653:2;4641:9;4632:7;4628:23;4624:32;4621:52;;;4669:1;4666;4659:12;4621:52;4708:9;4695:23;4727:28;4749:5;4727:28;:::i;5060:423::-;5102:3;5140:5;5134:12;5167:6;5162:3;5155:19;5192:1;5202:162;5216:6;5213:1;5210:13;5202:162;;;5278:4;5334:13;;;5330:22;;5324:29;5306:11;;;5302:20;;5295:59;5231:12;5202:162;;;5206:3;5409:1;5402:4;5393:6;5388:3;5384:16;5380:27;5373:38;5472:4;5465:2;5461:7;5456:2;5448:6;5444:15;5440:29;5435:3;5431:39;5427:50;5420:57;;;5060:423;;;;:::o;5488:764::-;5665:2;5654:9;5647:21;5740:1;5736;5731:3;5727:11;5723:19;5714:6;5708:13;5704:39;5699:2;5688:9;5684:18;5677:67;5798:2;5790:6;5786:15;5780:22;5775:2;5764:9;5760:18;5753:50;5628:4;5850:2;5842:6;5838:15;5832:22;5890:4;5885:2;5874:9;5870:18;5863:32;5918:52;5965:3;5954:9;5950:19;5936:12;5918:52;:::i;:::-;5904:66;;6019:2;6011:6;6007:15;6001:22;6092:2;6088:7;6076:9;6068:6;6064:22;6060:36;6054:3;6043:9;6039:19;6032:65;6120:41;6154:6;6138:14;6120:41;:::i;:::-;6106:55;;;6217:3;6209:6;6205:16;6199:23;6192:4;6181:9;6177:20;6170:53;6240:6;6232:14;;;5488:764;;;;:::o;6257:322::-;6326:6;6379:2;6367:9;6358:7;6354:23;6350:32;6347:52;;;6395:1;6392;6385:12;6347:52;6435:9;6422:23;6468:18;6460:6;6457:30;6454:50;;;6500:1;6497;6490:12;6454:50;6523;6565:7;6556:6;6545:9;6541:22;6523:50;:::i;:::-;6513:60;6257:322;-1:-1:-1;;;;6257:322:30:o;6584:220::-;6733:2;6722:9;6715:21;6696:4;6753:45;6794:2;6783:9;6779:18;6771:6;6753:45;:::i;6809:186::-;6868:6;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6960:29;6979:9;6960:29;:::i;7347:127::-;7408:10;7403:3;7399:20;7396:1;7389:31;7439:4;7436:1;7429:15;7463:4;7460:1;7453:15;7479:347;7681:2;7663:21;;;7720:2;7700:18;;;7693:30;7759:25;7754:2;7739:18;;7732:53;7817:2;7802:18;;7479:347::o;7831:127::-;7892:10;7887:3;7883:20;7880:1;7873:31;7923:4;7920:1;7913:15;7947:4;7944:1;7937:15;7963:380;8042:1;8038:12;;;;8085;;;8106:61;;8160:4;8152:6;8148:17;8138:27;;8106:61;8213:2;8205:6;8202:14;8182:18;8179:38;8176:161;;8259:10;8254:3;8250:20;8247:1;8240:31;8294:4;8291:1;8284:15;8322:4;8319:1;8312:15;8176:161;;7963:380;;;:::o;8474:545::-;8576:2;8571:3;8568:11;8565:448;;;8612:1;8637:5;8633:2;8626:17;8682:4;8678:2;8668:19;8752:2;8740:10;8736:19;8733:1;8729:27;8723:4;8719:38;8788:4;8776:10;8773:20;8770:47;;;-1:-1:-1;8811:4:30;8770:47;8866:2;8861:3;8857:12;8854:1;8850:20;8844:4;8840:31;8830:41;;8921:82;8939:2;8932:5;8929:13;8921:82;;;8984:17;;;8965:1;8954:13;8921:82;;;8925:3;;;8565:448;8474:545;;;:::o;9195:1352::-;9321:3;9315:10;9348:18;9340:6;9337:30;9334:56;;;9370:18;;:::i;:::-;9399:97;9489:6;9449:38;9481:4;9475:11;9449:38;:::i;:::-;9443:4;9399:97;:::i;:::-;9551:4;;9615:2;9604:14;;9632:1;9627:663;;;;10334:1;10351:6;10348:89;;;-1:-1:-1;10403:19:30;;;10397:26;10348:89;-1:-1:-1;;9152:1:30;9148:11;;;9144:24;9140:29;9130:40;9176:1;9172:11;;;9127:57;10450:81;;9597:944;;9627:663;8421:1;8414:14;;;8458:4;8445:18;;-1:-1:-1;;9663:20:30;;;9781:236;9795:7;9792:1;9789:14;9781:236;;;9884:19;;;9878:26;9863:42;;9976:27;;;;9944:1;9932:14;;;;9811:19;;9781:236;;;9785:3;10045:6;10036:7;10033:19;10030:201;;;10106:19;;;10100:26;-1:-1:-1;;10189:1:30;10185:14;;;10201:3;10181:24;10177:37;10173:42;10158:58;10143:74;;10030:201;-1:-1:-1;;;;;10277:1:30;10261:14;;;10257:22;10244:36;;-1:-1:-1;9195:1352:30:o;12528:245::-;12595:6;12648:2;12636:9;12627:7;12623:23;12619:32;12616:52;;;12664:1;12661;12654:12;12616:52;12696:9;12690:16;12715:28;12737:5;12715:28;:::i;14254:127::-;14315:10;14310:3;14306:20;14303:1;14296:31;14346:4;14343:1;14336:15;14370:4;14367:1;14360:15;14386:125;14451:9;;;14472:10;;;14469:36;;;14485:18;;:::i;14870:128::-;14937:9;;;14958:11;;;14955:37;;;14972:18;;:::i;15708:330::-;15904:2;15889:18;;15916:49;15893:9;15947:6;15916:49;:::i;:::-;15974:58;16028:2;16017:9;16013:18;16005:6;15974:58;:::i","linkReferences":{},"immutableReferences":{"2697":[{"start":461,"length":32},{"start":968,"length":32},{"start":1139,"length":32},{"start":1850,"length":32}]}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","cancelProposal()":"9070577f","castVote(uint256,uint8)":"56781388","configureProposal(bool)":"5b4d2f85","daoAddress()":"2131c68c","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","getVote(uint256)":"5a55c1f0","hasVoted(uint256)":"ecca031f","owner()":"8da5cb5b","proposalTitle()":"e5045752","removeAction()":"421e4444","renounceOwnership()":"715018a6","revotable()":"0c8ba758","setActionReady(uint256,uint256)":"280b0c87","setProposalTitle(string)":"baceec7a","setVotingPeriod(uint256,uint256)":"a15a36c7","startTime()":"78e97925","status()":"200d2ed2","transferOwnership(address)":"f2fde38b","updateStatus(uint8)":"0b3af7f9","voteCount()":"c6384071","voteTotals(uint256)":"814a1d8e","votes(uint256)":"5df81330"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"currentStatus\",\"type\":\"uint8\"},{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"requiredStatus\",\"type\":\"uint8\"}],\"name\":\"InvalidStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalResults\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newStatus\",\"type\":\"string\"}],\"name\":\"StatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isRevotable\",\"type\":\"bool\"}],\"name\":\"configureProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getVote\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newProposalTitle\",\"type\":\"string\"}],\"name\":\"setProposalTitle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newEndTime\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"direction\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"StatusUpdated(string)\":{\"params\":{\"newStatus\":\"new status of proposal\"}},\"VoteCast(address,uint256,uint8)\":{\"params\":{\"tokenId\":\"id of nft token granting vote\",\"vote\":\"direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN)\",\"voter\":\"address that cast the vote\"}}},\"kind\":\"dev\",\"methods\":{\"addAction(address,uint256,string,bytes)\":{\"details\":\"pushes a new action to the end of the actions queue\"},\"castVote(uint256,uint8)\":{\"details\":\"casts a vote\",\"params\":{\"tokenId\":\"id of token casting votes\",\"vote\":\"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)\"}},\"configureProposal(bool)\":{\"details\":\"configures proposal settings\",\"params\":{\"isRevotable\":\"allows revoting on proposal if true\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeAction()\":{\"details\":\"removes action at end of action queue\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProposalTitle(string)\":{\"details\":\"sets proposal title\",\"params\":{\"newProposalTitle\":\"new proposal title\"}},\"setVotingPeriod(uint256,uint256)\":{\"details\":\"sets voting start and end time\",\"params\":{\"newEndTime\":\"time voting will end\",\"newStartTime\":\"time voting will start\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Proposal Contract\",\"version\":1},\"userdoc\":{\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"StatusUpdated(string)\":{\"notice\":\"logs a change in proposal status.\"},\"VoteCast(address,uint256,uint8)\":{\"notice\":\"logs a vote\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREProposal.sol\":\"OGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6\",\"dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"proposalTitle_","type":"string"},{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Enums.ProposalStatus","name":"currentStatus","type":"uint8"},{"internalType":"enum Enums.ProposalStatus","name":"requiredStatus","type":"uint8"}],"type":"error","name":"InvalidStatus"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalResults","anonymous":false},{"inputs":[{"internalType":"string","name":"newStatus","type":"string","indexed":false}],"type":"event","name":"StatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint8","name":"vote","type":"uint8","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint8","name":"vote","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[{"internalType":"bool","name":"isRevotable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"configureProposal"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVote","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"removeAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"revotable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[{"internalType":"string","name":"newProposalTitle","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setProposalTitle"},{"inputs":[{"internalType":"uint256","name":"newStartTime","type":"uint256"},{"internalType":"uint256","name":"newEndTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[],"stateMutability":"view","type":"function","name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"uint8","name":"direction","type":"uint8"},{"internalType":"bool","name":"voted","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addAction(address,uint256,string,bytes)":{"details":"pushes a new action to the end of the actions queue"},"castVote(uint256,uint8)":{"details":"casts a vote","params":{"tokenId":"id of token casting votes","vote":"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)"}},"configureProposal(bool)":{"details":"configures proposal settings","params":{"isRevotable":"allows revoting on proposal if true"}},"owner()":{"details":"Returns the address of the current owner."},"removeAction()":{"details":"removes action at end of action queue"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setProposalTitle(string)":{"details":"sets proposal title","params":{"newProposalTitle":"new proposal title"}},"setVotingPeriod(uint256,uint256)":{"details":"sets voting start and end time","params":{"newEndTime":"time voting will end","newStartTime":"time voting will start"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREProposal.sol":"OGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb","urls":["bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6","dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/OGREProposalFactory.sol/OGREProposalFactory.json b/out/OGREProposalFactory.sol/OGREProposalFactory.json index 15d5d48..c92ac7c 100644 --- a/out/OGREProposalFactory.sol/OGREProposalFactory.json +++ b/out/OGREProposalFactory.sol/OGREProposalFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f35d71b99bdb343ca2dd2814592bbf63b5a379cf9b151185dcd862a0199dd87539060200160405180910390a1611d03806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015a565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011e565b61009b93929190610225565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c8919061028a565b9091555050604080516001600160a01b03838116825230602083015285168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b611a1e806102b083390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610155575f80fd5b919050565b5f805f6060848603121561016c575f80fd5b833567ffffffffffffffff80821115610183575f80fd5b818601915086601f830112610196575f80fd5b8135818111156101a8576101a861012b565b604051601f8201601f19908116603f011681019083821181831017156101d0576101d061012b565b816040528281528960208487010111156101e8575f80fd5b826020860160208301375f60208483010152809750505050505061020e6020850161013f565b915061021c6040850161013f565b90509250925092565b606081525f84518060608401525f5b818110156102515760208188018101516080868401015201610234565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a957634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033a264697066735822122095049eb3085d5cc282cc93d7a9ed4ad65e5cf0eba7171b288cc6597226eb5ec864736f6c63430008140033","sourceMap":"183:520:59:-:0;;;308:70;;;;;;;;;-1:-1:-1;337:34:59;;360:10;160:51:76;;337:34:59;;148:2:76;133:18;337:34:59;;;;;;;183:520;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015a565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011e565b61009b93929190610225565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c8919061028a565b9091555050604080516001600160a01b03838116825230602083015285168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b611a1e806102b083390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610155575f80fd5b919050565b5f805f6060848603121561016c575f80fd5b833567ffffffffffffffff80821115610183575f80fd5b818601915086601f830112610196575f80fd5b8135818111156101a8576101a861012b565b604051601f8201601f19908116603f011681019083821181831017156101d0576101d061012b565b816040528281528960208487010111156101e8575f80fd5b826020860160208301375f60208483010152809750505050505061020e6020850161013f565b915061021c6040850161013f565b90509250925092565b606081525f84518060608401525f5b818110156102515760208188018101516080868401015201610234565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a957634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea26469706673582212207b6047f868bccd845fbc0359850f8ae5a661d34e3b85c5118d958c041bba1a0164736f6c63430008140033a264697066735822122095049eb3085d5cc282cc93d7a9ed4ad65e5cf0eba7171b288cc6597226eb5ec864736f6c63430008140033","sourceMap":"183:520:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;384:317:59;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1755:32:76;;;1737:51;;1725:2;1710:18;384:317:59;1591:203:76;384:317:59;485:7;504:17;541:5;548:10;560:5;524:42;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;504:62;;595:1;576:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;611:53:59;;;-1:-1:-1;;;;;3023:15:76;;;3005:34;;651:4:59;3070:2:76;3055:18;;3048:43;3127:15;;3107:18;;;3100:43;611:53:59;;;;;;;2955:2:76;611:53:59;;;689:4;384:317;-1:-1:-1;;;;384:317:59:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:173;396:20;;-1:-1:-1;;;;;445:31:76;;435:42;;425:70;;491:1;488;481:12;425:70;328:173;;;:::o;506:1080::-;593:6;601;609;662:2;650:9;641:7;637:23;633:32;630:52;;;678:1;675;668:12;630:52;718:9;705:23;747:18;788:2;780:6;777:14;774:34;;;804:1;801;794:12;774:34;842:6;831:9;827:22;817:32;;887:7;880:4;876:2;872:13;868:27;858:55;;909:1;906;899:12;858:55;945:2;932:16;967:2;963;960:10;957:36;;;973:18;;:::i;:::-;1048:2;1042:9;1016:2;1102:13;;-1:-1:-1;;1098:22:76;;;1122:2;1094:31;1090:40;1078:53;;;1146:18;;;1166:22;;;1143:46;1140:72;;;1192:18;;:::i;:::-;1232:10;1228:2;1221:22;1267:2;1259:6;1252:18;1309:7;1302:4;1297:2;1293;1289:11;1285:22;1282:35;1279:55;;;1330:1;1327;1320:12;1279:55;1390:2;1383:4;1379:2;1375:13;1368:4;1360:6;1356:17;1343:50;1437:1;1430:4;1425:2;1417:6;1413:15;1409:26;1402:37;1458:6;1448:16;;;;;;;1483:40;1517:4;1506:9;1502:20;1483:40;:::i;:::-;1473:50;;1542:38;1576:2;1565:9;1561:18;1542:38;:::i;:::-;1532:48;;506:1080;;;;;:::o;1799:734::-;2004:2;1993:9;1986:21;1967:4;2036:6;2030:13;2079:6;2074:2;2063:9;2059:18;2052:34;2104:1;2114:145;2128:6;2125:1;2122:13;2114:145;;;2242:4;2226:14;;;2222:25;;2216:32;2210:3;2191:17;;;2187:27;2180:69;2143:12;2114:145;;;-1:-1:-1;2309:1:76;2303:3;2279:22;;;2275:32;;2268:43;;;;-1:-1:-1;;;;;2459:15:76;;;2452:4;2437:20;;2430:45;2511:15;;;;2506:2;2491:18;;2484:43;-1:-1:-1;2372:2:76;2351:15;;;-1:-1:-1;;2347:29:76;2332:45;;;2328:55;;;-1:-1:-1;1799:734:76:o;2538:222::-;2603:9;;;2624:10;;;2621:133;;;2676:10;2671:3;2667:20;2664:1;2657:31;2711:4;2708:1;2701:15;2739:4;2736:1;2729:15;2621:133;2538:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREProposalFactory.sol\":\"OGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957\",\"dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGREProposalFactory.sol\":{\"keccak256\":\"0xb0360433434b5b516e2b29edb16838220b51298dd0d592ef22ab23bc278be949\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bda1e817fc16f8d2f8b4925a15d1f4daa083d8a943e77758c619500c449d2132\",\"dweb:/ipfs/QmSxH84JHtTVSJh7LMqjC9KVjPExgFWLPqMMvDBcdqvamW\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b\",\"dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalFactoryCreated","anonymous":false},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREProposalFactory.sol":"OGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0xd7174d2c4a6cc5c5301296dec309f4a2617fdd6594781ec0f79f0103c41720af","urls":["bzz-raw://393cb303625e977ac0b2a1297912223cab60ee76f144900f374e944c43ca6957","dweb:/ipfs/Qmd2CnuVPMJUgAfWMMXJtbLe5PPYVMG1MNy4uMqgY7MHwz"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGREProposalFactory.sol":{"keccak256":"0xb0360433434b5b516e2b29edb16838220b51298dd0d592ef22ab23bc278be949","urls":["bzz-raw://bda1e817fc16f8d2f8b4925a15d1f4daa083d8a943e77758c619500c449d2132","dweb:/ipfs/QmSxH84JHtTVSJh7LMqjC9KVjPExgFWLPqMMvDBcdqvamW"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe5dd74c7fe178656a05a444109f43d8b1f8b5e1ac91d0fec5d09f5890b42e33b","urls":["bzz-raw://8248afe1537e852572835288ad1ef843c6dc6ff3e00ca8e256584413df23733b","dweb:/ipfs/QmYpWiSJUUCVzmdeiTZN4CAJsUhif7DUCHdnfz8z3KmfJz"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":59} \ No newline at end of file +{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50611cfd8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610154565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f90610118565b61009b9392919061021f565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c89190610284565b9091555050604080516001600160a01b038084168252851660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a1949350505050565b611a1e806102aa83390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b038116811461014f575f80fd5b919050565b5f805f60608486031215610166575f80fd5b833567ffffffffffffffff8082111561017d575f80fd5b818601915086601f830112610190575f80fd5b8135818111156101a2576101a2610125565b604051601f8201601f19908116603f011681019083821181831017156101ca576101ca610125565b816040528281528960208487010111156101e2575f80fd5b826020860160208301375f60208483010152809750505050505061020860208501610139565b915061021660408501610139565b90509250925092565b606081525f84518060608401525f5b8181101561024b576020818801810151608086840101520161022e565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a357634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033a26469706673582212204e64b9bcd4830431c02e6c647c5badd0cc8ffee078b3927e47bab6db949e66cf64736f6c63430008140033","sourceMap":"134:355:20:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610154565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f90610118565b61009b9392919061021f565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c89190610284565b9091555050604080516001600160a01b038084168252851660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a1949350505050565b611a1e806102aa83390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b038116811461014f575f80fd5b919050565b5f805f60608486031215610166575f80fd5b833567ffffffffffffffff8082111561017d575f80fd5b818601915086601f830112610190575f80fd5b8135818111156101a2576101a2610125565b604051601f8201601f19908116603f011681019083821181831017156101ca576101ca610125565b816040528281528960208487010111156101e2575f80fd5b826020860160208301375f60208483010152809750505050505061020860208501610139565b915061021660408501610139565b90509250925092565b606081525f84518060608401525f5b8181101561024b576020818801810151608086840101520161022e565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a357634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033a26469706673582212204e64b9bcd4830431c02e6c647c5badd0cc8ffee078b3927e47bab6db949e66cf64736f6c63430008140033","sourceMap":"134:355:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;185:302:20;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1755:32:30;;;1737:51;;1725:2;1710:18;185:302:20;1591:203:30;185:302:20;286:7;305:17;342:5;349:10;361:5;325:42;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;305:62;;396:1;377:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;412:38:20;;;-1:-1:-1;;;;;2995:15:30;;;2977:34;;3047:15;;3042:2;3027:18;;3020:43;412:38:20;;2912:18:30;412:38:20;;;;;;;475:4;185:302;-1:-1:-1;;;;185:302:20:o;-1:-1:-1:-;;;;;;;;:::o;196:127:30:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:173;396:20;;-1:-1:-1;;;;;445:31:30;;435:42;;425:70;;491:1;488;481:12;425:70;328:173;;;:::o;506:1080::-;593:6;601;609;662:2;650:9;641:7;637:23;633:32;630:52;;;678:1;675;668:12;630:52;718:9;705:23;747:18;788:2;780:6;777:14;774:34;;;804:1;801;794:12;774:34;842:6;831:9;827:22;817:32;;887:7;880:4;876:2;872:13;868:27;858:55;;909:1;906;899:12;858:55;945:2;932:16;967:2;963;960:10;957:36;;;973:18;;:::i;:::-;1048:2;1042:9;1016:2;1102:13;;-1:-1:-1;;1098:22:30;;;1122:2;1094:31;1090:40;1078:53;;;1146:18;;;1166:22;;;1143:46;1140:72;;;1192:18;;:::i;:::-;1232:10;1228:2;1221:22;1267:2;1259:6;1252:18;1309:7;1302:4;1297:2;1293;1289:11;1285:22;1282:35;1279:55;;;1330:1;1327;1320:12;1279:55;1390:2;1383:4;1379:2;1375:13;1368:4;1360:6;1356:17;1343:50;1437:1;1430:4;1425:2;1417:6;1413:15;1409:26;1402:37;1458:6;1448:16;;;;;;;1483:40;1517:4;1506:9;1502:20;1483:40;:::i;:::-;1473:50;;1542:38;1576:2;1565:9;1561:18;1542:38;:::i;:::-;1532:48;;506:1080;;;;;:::o;1799:734::-;2004:2;1993:9;1986:21;1967:4;2036:6;2030:13;2079:6;2074:2;2063:9;2059:18;2052:34;2104:1;2114:145;2128:6;2125:1;2122:13;2114:145;;;2242:4;2226:14;;;2222:25;;2216:32;2210:3;2191:17;;;2187:27;2180:69;2143:12;2114:145;;;-1:-1:-1;2309:1:30;2303:3;2279:22;;;2275:32;;2268:43;;;;-1:-1:-1;;;;;2459:15:30;;;2452:4;2437:20;;2430:45;2511:15;;;;2506:2;2491:18;;2484:43;-1:-1:-1;2372:2:30;2351:15;;;-1:-1:-1;;2347:29:30;2332:45;;;2328:55;;;-1:-1:-1;1799:734:30:o;2538:222::-;2603:9;;;2624:10;;;2621:133;;;2676:10;2671:3;2667:20;2664:1;2657:31;2711:4;2708:1;2701:15;2739:4;2736:1;2729:15;2621:133;2538:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREProposalFactory.sol\":\"OGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6\",\"dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREProposalFactory.sol\":{\"keccak256\":\"0x5a675da1671e9691b1de2b5d048b2e8c7172c78e79b8d7c9c9482be572355844\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f6610fa9a388602f991c273b9b3a944b17eca5eee751e4412615327fd6f8f06\",\"dweb:/ipfs/QmP7EKxz2kWGQBVBfFYutA2AFhpJytkzsDnwiaKG577TgQ\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREProposalFactory.sol":"OGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb","urls":["bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6","dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREProposalFactory.sol":{"keccak256":"0x5a675da1671e9691b1de2b5d048b2e8c7172c78e79b8d7c9c9482be572355844","urls":["bzz-raw://5f6610fa9a388602f991c273b9b3a944b17eca5eee751e4412615327fd6f8f06","dweb:/ipfs/QmP7EKxz2kWGQBVBfFYutA2AFhpJytkzsDnwiaKG577TgQ"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/OGRETreasury.sol/OGRETreasury.json b/out/OGRETreasury.sol/OGRETreasury.json index 1aadfc7..69741e7 100644 --- a/out/OGRETreasury.sol/OGRETreasury.json +++ b/out/OGRETreasury.sol/OGRETreasury.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033","sourceMap":"484:1207:48:-:0;;;580:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;621:11;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;455:51:76;428:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;644:24:48::1;;::::0;484:1207;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:203::-;484:1207:48;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033","sourceMap":"484:1207:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:568;;;;;;;;;;-1:-1:-1;681:568:48;;;;;:::i;:::-;-1:-1:-1;;;681:568:48;;;;;;;;;;;-1:-1:-1;;;;;;1167:33:76;;;1149:52;;1137:2;1122:18;681:568:48;;;;;;;;534:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1376:32:76;;;1358:51;;1346:2;1331:18;534:35:48;1212:203:76;1726:84:14;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;1585:14:76;;1578:22;1560:41;;1548:2;1533:18;1726:84:14;1420:187:76;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;1255:370:48;;;;;;;;;;-1:-1:-1;1255:370:48;;;;;:::i;:::-;;:::i;2543:215:2:-;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1255:370:48:-;1493:68;;-1:-1:-1;;;1493:68:48;;1542:4;1493:68;;;2376:34:76;-1:-1:-1;;;;;2446:15:76;;;2426:18;;;2419:43;2478:18;;;2471:34;;;1493:40:48;;;;;2311:18:76;;1493:68:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:370;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1358:51:76::0;1331:18;;2672:31:2::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1358:51:76;1331:18;;1901:40:2;1212:203:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:808::-;289:6;297;305;313;321;374:3;362:9;353:7;349:23;345:33;342:53;;;391:1;388;381:12;342:53;414:29;433:9;414:29;:::i;:::-;404:39;;462:38;496:2;485:9;481:18;462:38;:::i;:::-;452:48;;547:2;536:9;532:18;519:32;509:42;;602:2;591:9;587:18;574:32;625:18;666:2;658:6;655:14;652:34;;;682:1;679;672:12;652:34;720:6;709:9;705:22;695:32;;765:7;758:4;754:2;750:13;746:27;736:55;;787:1;784;777:12;736:55;827:2;814:16;853:2;845:6;842:14;839:34;;;869:1;866;859:12;839:34;914:7;909:2;900:6;896:2;892:15;888:24;885:37;882:57;;;935:1;932;925:12;882:57;192:808;;;;-1:-1:-1;192:808:76;;-1:-1:-1;966:2:76;958:11;;988:6;192:808;-1:-1:-1;;;192:808:76:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;1945:186::-;2004:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:52;;;2073:1;2070;2063:12;2025:52;2096:29;2115:9;2096:29;:::i;:::-;2086:39;1945:186;-1:-1:-1;;;1945:186:76:o","linkReferences":{},"immutableReferences":{"50533":[{"start":225,"length":32}]}},"methodIdentifiers":{"daoAddress()":"2131c68c","onERC721Received(address,address,uint256,bytes)":"150b7a02","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","sendERC721(address,address,uint256)":"b72ac8ea","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETreasury.sol\":\"OGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c\",\"dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETreasury.sol":"OGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0","urls":["bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c","dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ"],"license":"UNLICENSED"}},"version":1},"id":48} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033","sourceMap":"485:1201:6:-:0;;;581:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;622:11;-1:-1:-1;;;;;1273:26:0;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;455:51:9;428:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;645:24:6::1;;::::0;485:1201;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:9:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:9;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:9:o;309:203::-;485:1201:6;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033","sourceMap":"485:1201:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:562;;;;;;;;;;-1:-1:-1;682:562:6;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1253:33:9;;;1235:52;;1223:2;1208:18;682:562:6;;;;;;;;535:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1462:32:9;;;1444:51;;1432:2;1417:18;535:35:6;1298:203:9;1726:84:4;;;;;;;;;;-1:-1:-1;1773:4:4;1796:7;-1:-1:-1;;;1796:7:4;;;;1726:84;;1671:14:9;;1664:22;1646:41;;1634:2;1619:18;1726:84:4;1506:187:9;2293:101:0;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;1250:370:6;;;;;;;;;;-1:-1:-1;1250:370:6;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;682:562:6:-;1023:30;;-1:-1:-1;;;1023:30:6;;;;;2557:25:9;;;796:6:6;;1065:4;;-1:-1:-1;;;;;1023:21:6;;;;;2530:18:9;;1023:30:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1023:47:6;;1015:77;;;;-1:-1:-1;;;1015:77:6;;3051:2:9;1015:77:6;;;3033:21:9;3090:2;3070:18;;;3063:30;-1:-1:-1;;;3109:18:9;;;3102:47;3166:18;;1015:77:6;;;;;;;;;-1:-1:-1;;;;682:562:6;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1250:370:6:-;1488:68;;-1:-1:-1;;;1488:68:6;;1537:4;1488:68;;;3435:34:9;-1:-1:-1;;;;;3505:15:9;;;3485:18;;;3478:43;3537:18;;;3530:34;;;1488:40:6;;;;;3370:18:9;;1488:68:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:370;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;1444:51:9::0;1417:18;;2672:31:0::1;1298:203:9::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:3;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:3;1901:40:0;;;1444:51:9;1417:18;;1901:40:0;1298:203:9;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:9:-;-1:-1:-1;;;;;89:31:9;;79:42;;69:70;;135:1;132;125:12;150:936;247:6;255;263;271;279;332:3;320:9;311:7;307:23;303:33;300:53;;;349:1;346;339:12;300:53;388:9;375:23;407:31;432:5;407:31;:::i;:::-;457:5;-1:-1:-1;514:2:9;499:18;;486:32;527:33;486:32;527:33;:::i;:::-;579:7;-1:-1:-1;633:2:9;618:18;;605:32;;-1:-1:-1;688:2:9;673:18;;660:32;711:18;741:14;;;738:34;;;768:1;765;758:12;738:34;806:6;795:9;791:22;781:32;;851:7;844:4;840:2;836:13;832:27;822:55;;873:1;870;863:12;822:55;913:2;900:16;939:2;931:6;928:14;925:34;;;955:1;952;945:12;925:34;1000:7;995:2;986:6;982:2;978:15;974:24;971:37;968:57;;;1021:1;1018;1011:12;968:57;150:936;;;;-1:-1:-1;150:936:9;;-1:-1:-1;1052:2:9;1044:11;;1074:6;150:936;-1:-1:-1;;;150:936:9:o;1698:456::-;1775:6;1783;1791;1844:2;1832:9;1823:7;1819:23;1815:32;1812:52;;;1860:1;1857;1850:12;1812:52;1899:9;1886:23;1918:31;1943:5;1918:31;:::i;:::-;1968:5;-1:-1:-1;2025:2:9;2010:18;;1997:32;2038:33;1997:32;2038:33;:::i;:::-;1698:456;;2090:7;;-1:-1:-1;;;2144:2:9;2129:18;;;;2116:32;;1698:456::o;2159:247::-;2218:6;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;2326:9;2313:23;2345:31;2370:5;2345:31;:::i;:::-;2395:5;2159:247;-1:-1:-1;;;2159:247:9:o;2593:251::-;2663:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:52;;;2732:1;2729;2722:12;2684:52;2764:9;2758:16;2783:31;2808:5;2783:31;:::i","linkReferences":{},"immutableReferences":{"445":[{"start":213,"length":32}]}},"methodIdentifiers":{"daoAddress()":"2131c68c","onERC721Received(address,address,uint256,bytes)":"150b7a02","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","sendERC721(address,address,uint256)":"b72ac8ea","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETreasury.sol\":\"OGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d\",\"dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETreasury.sol":"OGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed","urls":["bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d","dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF"],"license":"UNLICENSED"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json b/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json index 119335a..8cfad15 100644 --- a/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json +++ b/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryFactoryCreated","inputs":[{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040513381527f0b4a1c9163c196895723a1f34414fff6cc04d7d184d9ed360f0880b25a57d7e69060200160405180910390a16106e1806100505f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610129565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d9061011c565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610156565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a192915050565b6105308061017c83390190565b5f60208284031215610139575f80fd5b81356001600160a01b038116811461014f575f80fd5b9392505050565b8082018082111561017557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033a2646970667358221220ce1ada20b383cb52c02ab3ecb854c364051cc962b9b22f94f03137cf96eb2df464736f6c63430008140033","sourceMap":"183:487:60:-:0;;;308:70;;;;;;;;;-1:-1:-1;337:34:60;;360:10;160:51:76;;337:34:60;;148:2:76;133:18;337:34:60;;;;;;;183:487;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610129565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d9061011c565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610156565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a192915050565b6105308061017c83390190565b5f60208284031215610139575f80fd5b81356001600160a01b038116811461014f575f80fd5b9392505050565b8082018082111561017557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161053038038061053083398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161042661010a5f395f60e101526104265ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101435780638da5cb5b14610157578063b72ac8ea14610173578063f2fde38b146101925761007a565b8063150b7a02146100875780632131c68c146100d05780635c975abb1461011b5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100b26100a1366004610304565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100db575f80fd5b506101037f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c7565b348015610126575f80fd5b505f54600160a01b900460ff1660405190151581526020016100c7565b34801561014e575f80fd5b506100856101b1565b348015610162575f80fd5b505f546001600160a01b0316610103565b34801561017e575f80fd5b5061008561018d366004610397565b6101c4565b34801561019d575f80fd5b506100856101ac3660046103d0565b61022c565b6101b961026e565b6101c25f61029a565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b158015610211575f80fd5b505af1158015610223573d5f803e3d5ffd5b50505050505050565b61023461026e565b6001600160a01b03811661026257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61026b8161029a565b50565b5f546001600160a01b031633146101c25760405163118cdaa760e01b8152336004820152602401610259565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102ff575f80fd5b919050565b5f805f805f60808688031215610318575f80fd5b610321866102e9565b945061032f602087016102e9565b935060408601359250606086013567ffffffffffffffff80821115610352575f80fd5b818801915088601f830112610365575f80fd5b813581811115610373575f80fd5b896020828501011115610384575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156103a9575f80fd5b6103b2846102e9565b92506103c0602085016102e9565b9150604084013590509250925092565b5f602082840312156103e0575f80fd5b6103e9826102e9565b939250505056fea26469706673582212209edd7c778d25503987f0c74513f2a60ca9789d9cefda885d3ac0a52dd6d46c5464736f6c63430008140033a2646970667358221220ce1ada20b383cb52c02ab3ecb854c364051cc962b9b22f94f03137cf96eb2df464736f6c63430008140033","sourceMap":"183:487:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;384:284:60;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;651:32:76;;;633:51;;621:2;606:18;384:284:60;487:203:76;384:284:60;449:7;468:21;509:10;492:28;;;;;:::i;:::-;-1:-1:-1;;;;;651:32:76;;;633:51;;621:2;606:18;492:28:60;;;;;;;;;;;;;;;;;;;;;;;468:52;;549:1;530:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;565:62:60;;;-1:-1:-1;;;;;1180:15:76;;1162:34;;609:4:60;1227:2:76;1212:18;;1205:43;616:10:60;1264:18:76;;;1257:43;565:62:60;;;;;;;1112:2:76;565:62:60;;;652:8;384:284;-1:-1:-1;;384:284:60:o;-1:-1:-1:-;;;;;;;;:::o;196:286:76:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;350:23;;-1:-1:-1;;;;;402:31:76;;392:42;;382:70;;448:1;445;438:12;382:70;471:5;196:286;-1:-1:-1;;;196:286:76:o;695:222::-;760:9;;;781:10;;;778:133;;;833:10;828:3;824:20;821:1;814:31;868:4;865:1;858:15;896:4;893:1;886:15;778:133;695:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"TreasuryFactoryCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRETreasuryFactory.sol\":\"OGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c\",\"dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRETreasuryFactory.sol\":{\"keccak256\":\"0x603a437fabbbb49afd0c74234ee9b28082d14c04348e793550fb5b61b2cfff9a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d69ee65cf9db97d07eb0b66f1b1d5e1b7ebc6a822406dbc889e745dd6a7a8dcc\",\"dweb:/ipfs/QmPTsFayiKVmJszxEEsYwDUtRoPvxttLh1cSxbrfER7jSJ\"]},\"src/interfaces/IOGRETreasuryFactory.sol\":{\"keccak256\":\"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732\",\"dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"TreasuryFactoryCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRETreasuryFactory.sol":"OGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0xc2bdc351622e78d0eaad1bd90b9fbfa9d9b1919e559ffe43d61489b008f733a0","urls":["bzz-raw://63887e02413264b384b3b1a5d6fc252493291ef9761ab747219d00034aebf66c","dweb:/ipfs/QmYqjkt8LE57KCU1PjaKc5wCnM1zmB1cJtvJkkzm3jnJwZ"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRETreasuryFactory.sol":{"keccak256":"0x603a437fabbbb49afd0c74234ee9b28082d14c04348e793550fb5b61b2cfff9a","urls":["bzz-raw://d69ee65cf9db97d07eb0b66f1b1d5e1b7ebc6a822406dbc889e745dd6a7a8dcc","dweb:/ipfs/QmPTsFayiKVmJszxEEsYwDUtRoPvxttLh1cSxbrfER7jSJ"],"license":"UNLICENSED"},"src/interfaces/IOGRETreasuryFactory.sol":{"keccak256":"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6","urls":["bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732","dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX"],"license":"UNLICENSED"}},"version":1},"id":60} \ No newline at end of file +{"abi":[{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506107b58061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610123565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d90610116565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610150565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a192915050565b61060a8061017683390190565b5f60208284031215610133575f80fd5b81356001600160a01b0381168114610149575f80fd5b9392505050565b8082018082111561016f57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033a2646970667358221220fa3b5f0194ffc4d2c07fe26970dc843bff9cec93cb6a57e1e9130eddd79e9dcf64736f6c63430008140033","sourceMap":"134:322:8:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610123565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d90610116565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610150565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a192915050565b61060a8061017683390190565b5f60208284031215610133575f80fd5b81356001600160a01b0381168114610149575f80fd5b9392505050565b8082018082111561016f57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033a2646970667358221220fa3b5f0194ffc4d2c07fe26970dc843bff9cec93cb6a57e1e9130eddd79e9dcf64736f6c63430008140033","sourceMap":"134:322:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:7;;;;;;;;;160:25:9;;;148:2;133:18;151:30:7;;;;;;;;185:269:8;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;651:32:9;;;633:51;;621:2;606:18;185:269:8;487:203:9;185:269:8;250:7;269:21;310:10;293:28;;;;;:::i;:::-;-1:-1:-1;;;;;651:32:9;;;633:51;;621:2;606:18;293:28:8;;;;;;;;;;;;;;;;;;;;;;;269:52;;350:1;331:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;366:47:8;;;-1:-1:-1;;;;;1152:15:9;;1134:34;;402:10:8;1199:2:9;1184:18;;1177:43;366:47:8;;1069:18:9;366:47:8;;;;;;;438:8;185:269;-1:-1:-1;;185:269:8:o;-1:-1:-1:-;;;;;;;;:::o;196:286:9:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;350:23;;-1:-1:-1;;;;;402:31:9;;392:42;;382:70;;448:1;445;438:12;382:70;471:5;196:286;-1:-1:-1;;;196:286:9:o;695:222::-;760:9;;;781:10;;;778:133;;;833:10;828:3;824:20;821:1;814:31;868:4;865:1;858:15;896:4;893:1;886:15;778:133;695:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRETreasuryFactory.sol\":\"OGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d\",\"dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGRETreasuryFactory.sol\":{\"keccak256\":\"0x0ceb9a0b4701d51d79137d667dc4afb396bc7de2018f54ddee58a8304c2e06cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a76e69b1fb2cd1ae8d689531c45ba7647c3c35626156fc186c3445d15b985850\",\"dweb:/ipfs/QmSkeh1RrPuS6QaZkzBaT63YXrmaLCA1sfU4Jce5HWS7FB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRETreasuryFactory.sol":"OGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed","urls":["bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d","dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGRETreasuryFactory.sol":{"keccak256":"0x0ceb9a0b4701d51d79137d667dc4afb396bc7de2018f54ddee58a8304c2e06cf","urls":["bzz-raw://a76e69b1fb2cd1ae8d689531c45ba7647c3c35626156fc186c3445d15b985850","dweb:/ipfs/QmSkeh1RrPuS6QaZkzBaT63YXrmaLCA1sfU4Jce5HWS7FB"],"license":"UNLICENSED"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/Structs.sol/Structs.json b/out/Structs.sol/Structs.json index 569cd06..89a988c 100644 --- a/out/Structs.sol/Structs.json +++ b/out/Structs.sol/Structs.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a283cf606d41fb79b03231b941b7831f841dcd1cce8b1e411c19c1fbb17619a564736f6c63430008140033","sourceMap":"101:1387:74:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;101:1387:74;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a283cf606d41fb79b03231b941b7831f841dcd1cce8b1e411c19c1fbb17619a564736f6c63430008140033","sourceMap":"101:1387:74:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Structs.sol\":\"Structs\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Structs.sol":"Structs"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"}},"version":1},"id":74} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b69764c0967251c14feeaf20a546237670636617c6056ab65300cf4875c206464736f6c63430008140033","sourceMap":"101:1387:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;101:1387:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b69764c0967251c14feeaf20a546237670636617c6056ab65300cf4875c206464736f6c63430008140033","sourceMap":"101:1387:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Structs.sol\":\"Structs\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Structs.sol":"Structs"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":29} \ No newline at end of file diff --git a/out/StubOGREFactory.sol/StubOGREFactory.json b/out/StubOGREFactory.sol/StubOGREFactory.json index 792953d..d3f5578 100644 --- a/out/StubOGREFactory.sol/StubOGREFactory.json +++ b/out/StubOGREFactory.sol/StubOGREFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceContract","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"producer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101278061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460c5565b605e565b005b604080516001600160a01b03848116825230602083015283168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a15050565b80356001600160a01b038116811460c0575f80fd5b919050565b5f806040838503121560d5575f80fd5b60dc8360ab565b915060e86020840160ab565b9050925092905056fea26469706673582212204e6b282ee81107bd0e978d89afb3caf54d517a7ad169271af1f080e00a61043764736f6c63430008140033","sourceMap":"161:231:54:-:0;;;212:16;;;;;;;;;;161:231;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460c5565b605e565b005b604080516001600160a01b03848116825230602083015283168183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a15050565b80356001600160a01b038116811460c0575f80fd5b919050565b5f806040838503121560d5575f80fd5b60dc8360ab565b915060e86020840160ab565b9050925092905056fea26469706673582212204e6b282ee81107bd0e978d89afb3caf54d517a7ad169271af1f080e00a61043764736f6c63430008140033","sourceMap":"161:231:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;234:155:54;;;;;;:::i;:::-;;:::i;:::-;;;324:58;;;-1:-1:-1;;;;;897:15:76;;;879:34;;366:4:54;944:2:76;929:18;;922:43;1001:15;;981:18;;;974:43;324:58:54;;;;;;;829:2:76;324:58:54;;;234:155;;:::o;196:173:76:-;264:20;;-1:-1:-1;;;;;313:31:76;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:260::-;442:6;450;503:2;491:9;482:7;478:23;474:32;471:52;;;519:1;516;509:12;471:52;542:29;561:9;542:29;:::i;:::-;532:39;;590:38;624:2;613:9;609:18;590:38;:::i;:::-;580:48;;374:260;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceContract(address,address)":"b0a32084","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"produceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Stub OGREFactory Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubOGREFactory.sol\":\"StubOGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/abstract/stub/StubOGREFactory.sol\":{\"keccak256\":\"0x3f8c58d15cd4bbc094d5cf1baef54bccea3fb19c4600d3031210b35d5f84ee59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fe89c6a813859552502a56fd5b9e6599105bf22e7ebf64b6edf1104844c423\",\"dweb:/ipfs/QmZpsZrg3P4wHhTfHVTtFn8FDKYvWA61CPYy7Xvqn9zrC1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"address","name":"producer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubOGREFactory.sol":"StubOGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/abstract/stub/StubOGREFactory.sol":{"keccak256":"0x3f8c58d15cd4bbc094d5cf1baef54bccea3fb19c4600d3031210b35d5f84ee59","urls":["bzz-raw://c3fe89c6a813859552502a56fd5b9e6599105bf22e7ebf64b6edf1104844c423","dweb:/ipfs/QmZpsZrg3P4wHhTfHVTtFn8FDKYvWA61CPYy7Xvqn9zrC1"],"license":"UNLICENSED"}},"version":1},"id":54} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceContract","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"producer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101218061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460bf565b605e565b005b604080516001600160a01b038085168252831660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a15050565b80356001600160a01b038116811460ba575f80fd5b919050565b5f806040838503121560cf575f80fd5b60d68360a5565b915060e26020840160a5565b9050925092905056fea26469706673582212204808d36bdb751f3bb29ab86eb8fb26bcb1d9db0e1da5d36a0fd7622168e57d3464736f6c63430008140033","sourceMap":"161:216:17:-:0;;;212:16;;;;;;;;;;161:216;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460bf565b605e565b005b604080516001600160a01b038085168252831660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a15050565b80356001600160a01b038116811460ba575f80fd5b919050565b5f806040838503121560cf575f80fd5b60d68360a5565b915060e26020840160a5565b9050925092905056fea26469706673582212204808d36bdb751f3bb29ab86eb8fb26bcb1d9db0e1da5d36a0fd7622168e57d3464736f6c63430008140033","sourceMap":"161:216:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;234:140:17;;;;;;:::i;:::-;;:::i;:::-;;;324:43;;;-1:-1:-1;;;;;869:15:30;;;851:34;;921:15;;916:2;901:18;;894:43;324::17;;786:18:30;324:43:17;;;;;;;234:140;;:::o;196:173:30:-;264:20;;-1:-1:-1;;;;;313:31:30;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:260::-;442:6;450;503:2;491:9;482:7;478:23;474:32;471:52;;;519:1;516;509:12;471:52;542:29;561:9;542:29;:::i;:::-;532:39;;590:38;624:2;613:9;609:18;590:38;:::i;:::-;580:48;;374:260;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceContract(address,address)":"b0a32084","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"produceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Stub OGREFactory Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubOGREFactory.sol\":\"StubOGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/abstract/stub/StubOGREFactory.sol\":{\"keccak256\":\"0x00ec6b6fc056b7a4bd6d61020ea458921bf0c1feeca765ea76b39b93734f3d40\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3949c04c47e1cf1ebb09dbc9b21d3293538883c50db7aa16a7f403a541068417\",\"dweb:/ipfs/QmbGmS9XsnEUcGvsZMBPMjm2BTqR4vwrGnTifJSPNMjcVX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"address","name":"producer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubOGREFactory.sol":"StubOGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/abstract/stub/StubOGREFactory.sol":{"keccak256":"0x00ec6b6fc056b7a4bd6d61020ea458921bf0c1feeca765ea76b39b93734f3d40","urls":["bzz-raw://3949c04c47e1cf1ebb09dbc9b21d3293538883c50db7aa16a7f403a541068417","dweb:/ipfs/QmbGmS9XsnEUcGvsZMBPMjm2BTqR4vwrGnTifJSPNMjcVX"],"license":"UNLICENSED"}},"version":1},"id":17} \ No newline at end of file diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 8ba50c5..452896b 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -6,7 +6,7 @@ import "@openzeppelin/contracts/access/AccessControl.sol"; import "./interfaces/IOGREProposalFactory.sol"; import "./interfaces/IOGREProposal.sol"; import "./abstract/ActionHopper.sol"; -import "./abstract/ERC721Receivable.sol"; +// import "./abstract/ERC721Receivable.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; @@ -22,7 +22,7 @@ import {Structs} from "./libraries/Structs.sol"; * @title Open Governance Referendum Engine DAO Contract * @author Craig Branscom */ -contract OGREDAO is AccessControl, ActionHopper, ERC721Receivable { +contract OGREDAO is AccessControl, ActionHopper { address public immutable proposalFactoryAddress; address public immutable nftAddress; //ERC721 contract tracking member voting rights diff --git a/src/OGREMarket.sol b/src/OGREMarket.sol index 0c7d006..7aac02a 100644 --- a/src/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/AccessControl.sol"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 08a8c5d..167976d 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -1,8 +1,9 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; import "./interfaces/IOGREDAO.sol"; + import {Enums} from "./libraries/Enums.sol"; import {Structs} from "./libraries/Structs.sol"; diff --git a/src/OGRETreasury.sol b/src/OGRETreasury.sol index d962aab..2e3ef89 100644 --- a/src/OGRETreasury.sol +++ b/src/OGRETreasury.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.0; +pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/Pausable.sol"; @@ -22,8 +22,8 @@ contract OGRETreasury is Ownable, Pausable { function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4) { // require(_incomingOrderItem.contractAddress != address(0x0), "not expecting incoming order item"); // require(_incomingOrderItem.itemType == ItemType.ERC721, "wrong item type sent"); - // require(IERC721(from).ownerOf(tokenId) == address(this), "item not received"); - // if (data.length > 0) {} + require(IERC721(from).ownerOf(tokenId) == address(this), "item not received"); + if (data.length > 0) {} // IERC721(from).approve(msg.sender, tokenId); return IERC721Receiver.onERC721Received.selector; } diff --git a/src/abstract/OGREFactory.sol b/src/abstract/OGREFactory.sol index 0fd3c5d..9528bc7 100644 --- a/src/abstract/OGREFactory.sol +++ b/src/abstract/OGREFactory.sol @@ -15,6 +15,4 @@ abstract contract OGREFactory { */ event ContractProduced(address contractAddress, address producedBy); - constructor() {} - } \ No newline at end of file diff --git a/src/abstract/stub/StubOGREFactory.sol b/src/abstract/stub/StubOGREFactory.sol index 4ec25d1..037b226 100644 --- a/src/abstract/stub/StubOGREFactory.sol +++ b/src/abstract/stub/StubOGREFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import "../OGREFactory.sol"; diff --git a/src/factories/OGREDAOFactory.sol b/src/factories/OGREDAOFactory.sol index 3e0833d..e397ebd 100644 --- a/src/factories/OGREDAOFactory.sol +++ b/src/factories/OGREDAOFactory.sol @@ -1,22 +1,23 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; -import "../interfaces/IOGREDAOFactory.sol"; import "../abstract/OGREFactory.sol"; import "../OGREDAO.sol"; -contract OGREDAOFactory is IOGREDAOFactory, OGREFactory { +contract OGREDAOFactory is OGREFactory { - event DAOFactoryCreated(address creator); - - constructor() { - emit DAOFactoryCreated(msg.sender); - } - - function produceOGREDAO(string memory name, string memory metadata, address nft, address proposalFactory, uint256 proposalCost, address admin, uint256 delay) public returns (address) { + function produceOGREDAO( + string memory name, + string memory metadata, + address nft, + address proposalFactory, + uint256 proposalCost, + address admin, + uint256 delay + ) public returns (address) { OGREDAO dao = new OGREDAO(name, metadata, nft, proposalFactory, proposalCost, admin, delay); productionCount += 1; - emit ContractProduced(address(dao), address(this), msg.sender); + emit ContractProduced(address(dao), msg.sender); return address(dao); } } \ No newline at end of file diff --git a/src/factories/OGREMarketFactory.sol b/src/factories/OGREMarketFactory.sol index de23c77..92b522c 100644 --- a/src/factories/OGREMarketFactory.sol +++ b/src/factories/OGREMarketFactory.sol @@ -1,22 +1,20 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; -import "../interfaces/IOGREMarketFactory.sol"; import "../abstract/OGREFactory.sol"; import "../OGREMarket.sol"; -contract OGREMarketFactory is IOGREMarketFactory, OGREFactory { +contract OGREMarketFactory is OGREFactory { - event MarketFactoryCreated(address creator); - - constructor() { - emit MarketFactoryCreated(msg.sender); - } - - function produceOGREMarket(address daoAddress, address admin, uint256 orderFee, address feeRecipient) public returns (address) { + function produceOGREMarket( + address daoAddress, + address admin, + uint256 orderFee, + address feeRecipient + ) public returns (address) { OGREMarket mkt = new OGREMarket(daoAddress, admin, orderFee, feeRecipient); productionCount += 1; - emit ContractProduced(address(mkt), address(this), msg.sender); + emit ContractProduced(address(mkt), msg.sender); return address(mkt); } } \ No newline at end of file diff --git a/src/factories/OGREProposalFactory.sol b/src/factories/OGREProposalFactory.sol index c032c4a..206f4f9 100644 --- a/src/factories/OGREProposalFactory.sol +++ b/src/factories/OGREProposalFactory.sol @@ -1,22 +1,15 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; -import "../interfaces/IOGREProposalFactory.sol"; import "../abstract/OGREFactory.sol"; import "../OGREProposal.sol"; -contract OGREProposalFactory is IOGREProposalFactory, OGREFactory { - - event ProposalFactoryCreated(address creator); - - constructor() { - emit ProposalFactoryCreated(msg.sender); - } +contract OGREProposalFactory is OGREFactory { function produceOGREProposal(string memory title, address daoAddress, address owner) public returns (address) { OGREProposal prop = new OGREProposal(title, daoAddress, owner); productionCount += 1; - emit ContractProduced(address(prop), address(this), owner); + emit ContractProduced(address(prop), owner); return address(prop); } } \ No newline at end of file diff --git a/src/factories/OGRETreasuryFactory.sol b/src/factories/OGRETreasuryFactory.sol index 3f75630..5573238 100644 --- a/src/factories/OGRETreasuryFactory.sol +++ b/src/factories/OGRETreasuryFactory.sol @@ -1,22 +1,15 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; -import "../interfaces/IOGRETreasuryFactory.sol"; import "../abstract/OGREFactory.sol"; import "../OGRETreasury.sol"; -contract OGRETreasuryFactory is IOGRETreasuryFactory, OGREFactory { - - event TreasuryFactoryCreated(address creator); - - constructor() { - emit TreasuryFactoryCreated(msg.sender); - } +contract OGRETreasuryFactory is OGREFactory { function produceOGRETreasury(address daoAddress) public returns (address) { OGRETreasury treasury = new OGRETreasury(daoAddress); productionCount += 1; - emit ContractProduced(address(treasury), address(this), msg.sender); + emit ContractProduced(address(treasury), msg.sender); return address(treasury); } } \ No newline at end of file diff --git a/src/interfaces/IOGRE20Factory.sol b/src/interfaces/IOGRE20Factory.sol deleted file mode 100644 index 7923041..0000000 --- a/src/interfaces/IOGRE20Factory.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGRE 20 Factory interface definition - */ -interface IOGRE20Factory { - function produceOGRE20(string memory name, string memory symbol, address owner) external returns (address); -} \ No newline at end of file diff --git a/src/interfaces/IOGRE721.sol b/src/interfaces/IOGRE721.sol deleted file mode 100644 index 05d17c1..0000000 --- a/src/interfaces/IOGRE721.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGRE 721 interface definition - */ -interface IOGRE721 { - function mint(address to, uint256 tokenId) external payable; - function burn(uint256 tokenId) external; -} \ No newline at end of file diff --git a/src/interfaces/IOGRE721Factory.sol b/src/interfaces/IOGRE721Factory.sol deleted file mode 100644 index 5b8b082..0000000 --- a/src/interfaces/IOGRE721Factory.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGRE NFT Factory interface definition - */ -interface IOGRE721Factory { - function produceOGRE721(string memory name, string memory symbol, address owner) external returns (address); -} \ No newline at end of file diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index 7ebf87d..0235373 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; /** * @notice OGRE DAO interface definition diff --git a/src/interfaces/IOGREDAOFactory.sol b/src/interfaces/IOGREDAOFactory.sol deleted file mode 100644 index e099afa..0000000 --- a/src/interfaces/IOGREDAOFactory.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGRE DAO Factory interface definition - */ -interface IOGREDAOFactory { - function produceOGREDAO(string memory name, string memory metadata, address nft, address prpoopsalFactory, uint256 proposalCost, address owner, uint256 delay) external returns (address); -} \ No newline at end of file diff --git a/src/interfaces/IOGREMarket.sol b/src/interfaces/IOGREMarket.sol index b68110d..29d8174 100644 --- a/src/interfaces/IOGREMarket.sol +++ b/src/interfaces/IOGREMarket.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import {Enums} from "../libraries/Enums.sol"; diff --git a/src/interfaces/IOGREMarketFactory.sol b/src/interfaces/IOGREMarketFactory.sol deleted file mode 100644 index 61f3fd0..0000000 --- a/src/interfaces/IOGREMarketFactory.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGREMarketFactory interface definition - */ -interface IOGREMarketFactory { - function produceOGREMarket(address daoAddress, address admin, uint256 orderFee, address feeRecipient) external returns (address); -} \ No newline at end of file diff --git a/src/interfaces/IOGREProposal.sol b/src/interfaces/IOGREProposal.sol index cfa2d4f..93261bb 100644 --- a/src/interfaces/IOGREProposal.sol +++ b/src/interfaces/IOGREProposal.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import {Enums} from "../libraries/Enums.sol"; import {Structs} from "../libraries/Structs.sol"; diff --git a/src/interfaces/IOGREProposalFactory.sol b/src/interfaces/IOGREProposalFactory.sol index d8a7fb9..e466440 100644 --- a/src/interfaces/IOGREProposalFactory.sol +++ b/src/interfaces/IOGREProposalFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; /** * @notice OGRE Proposal Factory interface definition diff --git a/src/interfaces/IOGRETreasury.sol b/src/interfaces/IOGRETreasury.sol index 2db7d3d..d5cef33 100644 --- a/src/interfaces/IOGRETreasury.sol +++ b/src/interfaces/IOGRETreasury.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.0; +pragma solidity ^0.8.20; /** * @notice OGRE Treasury interface definition diff --git a/src/interfaces/IOGRETreasuryFactory.sol b/src/interfaces/IOGRETreasuryFactory.sol deleted file mode 100644 index 85a2226..0000000 --- a/src/interfaces/IOGRETreasuryFactory.sol +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -/** - * @notice OGRE Treasury Factory interface definition - */ -interface IOGRETreasuryFactory { - function produceOGRETreasury(address daoAddress) external returns (address); -} \ No newline at end of file diff --git a/src/libraries/Constants.sol b/src/libraries/Constants.sol index 1059b18..cdfe358 100644 --- a/src/libraries/Constants.sol +++ b/src/libraries/Constants.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; library Constants { diff --git a/src/libraries/Enums.sol b/src/libraries/Enums.sol index cbd9780..a8b3ea5 100644 --- a/src/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; library Enums { @@ -35,10 +35,10 @@ library Enums { * OPEN: any nft holder can register to dao as a member * INVITE: only dao owner can invite new members */ - // enum AccessType { - // OPEN, - // INVITE - // } + enum AccessType { + OPEN, + INVITE + } /** * ASK: diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index 24419fb..20916d1 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import {Enums} from "./Enums.sol"; diff --git a/src/OGREBridge.sol b/todo/OGREBridge.sol similarity index 100% rename from src/OGREBridge.sol rename to todo/OGREBridge.sol diff --git a/src/OGRETokenizedMarket.sol b/todo/OGRETokenizedMarket.sol similarity index 100% rename from src/OGRETokenizedMarket.sol rename to todo/OGRETokenizedMarket.sol diff --git a/src/OGRETokenizedTreasury.sol b/todo/OGRETokenizedTreasury.sol similarity index 100% rename from src/OGRETokenizedTreasury.sol rename to todo/OGRETokenizedTreasury.sol From 674c56d38e7bf45f27ebd3ee533d04de88e39108 Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 18 Apr 2025 00:17:04 -0400 Subject: [PATCH 06/20] add basic test --- src/samples/SampleERC721.sol | 24 +--- test/OGREDAO.t.sol | 210 +++++++++++++++++++++++++++++++++++ 2 files changed, 215 insertions(+), 19 deletions(-) create mode 100644 test/OGREDAO.t.sol diff --git a/src/samples/SampleERC721.sol b/src/samples/SampleERC721.sol index 1e5c3d2..55c2053 100644 --- a/src/samples/SampleERC721.sol +++ b/src/samples/SampleERC721.sol @@ -1,31 +1,17 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; -import "@openzeppelin/contracts/access/Ownable.sol"; -import "@openzeppelin/contracts/utils/Pausable.sol"; -// import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; -// import "hardhat/console.sol"; - -/** - * @title Open Governance Referendum Engine NFT Contract - */ -contract SampleERC721 is Ownable, Pausable, ERC721 { +contract SampleERC721 is ERC721 { - constructor(string memory name_, string memory symbol_, address owner_) Ownable(owner_) ERC721(name_, symbol_) {} + constructor(string memory name_, string memory symbol_) ERC721(name_, symbol_) {} - /** - * @dev mint token id - */ - function mint(address to, uint256 tokenId) public payable onlyOwner whenNotPaused { + function mint(address to, uint256 tokenId) public payable { _safeMint(to, tokenId); } - /** - * @dev burn token id - */ - function burn(uint256 tokenId) public onlyOwner whenNotPaused { + function burn(uint256 tokenId) public { _burn(tokenId); } } \ No newline at end of file diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol new file mode 100644 index 0000000..dae883d --- /dev/null +++ b/test/OGREDAO.t.sol @@ -0,0 +1,210 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import "forge-std/Test.sol"; +import "../src/OGREDAO.sol"; +import "../src/samples/SampleERC721.sol"; +import "../src/OGREProposal.sol"; +import "../src/factories/OGREProposalFactory.sol"; + +contract OGREDAOTest is Test { + // Signers + address userA; + address userB; + address userC; + + // ERC721 + string name = "Test NFTs"; + string symbol = "TEST"; + uint256 maxSupply = 100; + address owner; + + // OGRE DAO + string daoName = "Test DAO"; + string daoMetadata = "https://some-api-endpoint.com/"; + uint256 delay = 10; // in seconds + uint256 quorumThresh = 5000; // 50% + uint256 supportThresh = 6000; // 60% + uint256 minVotePeriod = 300; // 5 mins + uint256 proposalCost = 0; + bytes32 daoAdminRole = keccak256("DAO_ADMIN"); + bytes32 daoInviteRole = keccak256("DAO_INVITE"); + + // OGRE Proposal + string proposalTitle = "Test Proposal"; + uint256 startTime; + uint256 endTime; + + OGREProposalFactory proposalFactoryContract; + SampleERC721 nftContract; + OGREDAO daoContract; + OGREProposal proposalContract; + + function setUp() public { + // Get signers + userA = makeAddr("userA"); + userB = makeAddr("userB"); + userC = makeAddr("userC"); + + // Deploy contracts + proposalFactoryContract = new OGREProposalFactory(); + nftContract = new SampleERC721(name, symbol); + daoContract = new OGREDAO( + daoName, + daoMetadata, + address(nftContract), + address(proposalFactoryContract), + proposalCost, + userA, + delay + ); + + // Mint NFTs to userA + for (uint256 i = 0; i < 10; i++) { + nftContract.mint(userA, i); + } + } + + function test_DeployOGREDAO() public { + assertEq(daoContract.daoName(), daoName); + assertEq(daoContract.nftAddress(), address(nftContract)); + assertEq(daoContract.proposalFactoryAddress(), address(proposalFactoryContract)); + assertEq(daoContract.delay(), delay); + + assertTrue(daoContract.hasRole(daoAdminRole, userA)); + assertFalse(daoContract.hasRole(daoAdminRole, userB)); + assertEq(daoContract.getRoleAdmin(daoInviteRole), daoAdminRole); + } + + // function testSetNewDAOName() public { + // string memory newName = "Test DAO 2.0"; + // daoContract.setDAOName(newName); + // assertEq(daoContract.daoName(), newName); + // } + + // function testSetNewQuorumThreshold() public { + // daoContract.setQuorumThreshold(quorumThresh); + // assertEq(daoContract.quorumThreshold(), quorumThresh); + // } + + // function testSetNewSupportThreshold() public { + // daoContract.setSupportThreshold(supportThresh); + // assertEq(daoContract.supportThreshold(), supportThresh); + // } + + // function testSetNewMinVotePeriod() public { + // daoContract.setMinVotePeriod(minVotePeriod); + // assertEq(daoContract.minVotePeriod(), minVotePeriod); + // } + + // function testCheckTokenOwnership() public { + // uint256 tokenId = 0; + // assertTrue(daoContract.isTokenOwner(tokenId, userA)); + // assertFalse(daoContract.isTokenOwner(tokenId, userB)); + // } + + // function testRegisterNewMember() public { + // uint256 tokenId = 0; + // uint256 memberCount = daoContract.memberCount(); + // uint256 memberStatus = uint256(daoContract.getMemberStatus(tokenId)); + + // assertEq(memberStatus, 0); + + // vm.prank(userA); + // daoContract.registerMember(tokenId); + + // assertEq(daoContract.memberCount(), memberCount + 1); + // assertEq(uint256(daoContract.getMemberStatus(tokenId)), 2); + // } + + // function test_RevertIf_MemberAlreadyRegistered() public { + // uint256 tokenId = 0; + // vm.prank(userA); + // daoContract.registerMember(tokenId); + // vm.prank(userA); + // daoContract.registerMember(tokenId); + // } + + // function testDraftAndSetupProposal() public { + // uint256 propCount = daoContract.proposalCount(); + + // vm.prank(userA); + // address propAddress = daoContract.draftProposal(proposalTitle); + + // assertEq(daoContract.proposalCount(), propCount + 1); + // assertEq(daoContract.proposals(propCount + 1), propAddress); + + // // Register remaining members + // for (uint256 i = 1; i < 10; i++) { + // vm.prank(userA); + // daoContract.registerMember(i); + // } + + // // Fund DAO address + // vm.deal(address(daoContract), 0.0001 ether); + + // // Add action to proposalContract + // proposalContract = OGREProposal(propAddress); + // address target = userA; + // uint256 value = 1; + // string memory sig = ""; + // bytes memory data = ""; + + // vm.prank(userA); + // proposalContract.addAction(target, value, sig, data); + + // // Set vote period + // startTime = block.timestamp + 1; + // endTime = startTime + 300; + + // vm.prank(userA); + // proposalContract.setVotingPeriod(startTime, endTime); + + // // Cast votes on proposalContract + // for (uint256 i = 0; i < 10; i++) { + // vm.prank(userA); + // proposalContract.castVote(i, 1); // yes vote + // } + + // // Advance network time + // vm.warp(endTime + 1); + // } + + // function testCheckProposalAddress() public { + // vm.prank(userA); + // address propAddress = daoContract.draftProposal(proposalTitle); + // assertTrue(daoContract.isProposal(propAddress)); + // assertFalse(daoContract.isProposal(userA)); + // } + + // function testEvaluateProposalPassed() public { + // vm.prank(userA); + // address propAddress = daoContract.draftProposal(proposalTitle); + // proposalContract = OGREProposal(propAddress); + + // // Setup proposalContract (similar to testDraftAndSetupProposal) + // // ... (omitted for brevity, but should include the same setup) + + // vm.prank(userA); + // bool passed = daoContract.evaluateProposal(propAddress); + // assertTrue(passed); + // assertEq(uint256(proposalContract.status()), 3); // passed + // } + + // function testExecuteProposal() public { + // vm.prank(userA); + // address propAddress = daoContract.draftProposal(proposalTitle); + // proposalContract = OGREProposal(propAddress); + + // // Setup proposalContract (similar to testDraftAndSetupProposal) + // // ... (omitted for brevity, but should include the same setup) + + // // Wait until ready time + // vm.warp(block.timestamp + delay + 1); + + // vm.prank(userA); + // daoContract.executeProposal(propAddress); + + // assertEq(uint256(proposalContract.status()), 4); // executed + // } +} \ No newline at end of file From 5b622b5d13b0e16a5cb54f0436ee13ca101baa6e Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 18 Apr 2025 00:25:39 -0400 Subject: [PATCH 07/20] remove build artifacts --- out/AccessControl.sol/AccessControl.json | 1 - out/ActionHopper.sol/ActionHopper.json | 1 - out/Base.sol/CommonBase.json | 1 - out/Base.sol/ScriptBase.json | 1 - out/Base.sol/TestBase.json | 1 - out/Constants.sol/Constants.json | 1 - out/Context.sol/Context.json | 1 - out/ERC165.sol/ERC165.json | 1 - out/ERC20.sol/ERC20.json | 1 - out/ERC721.sol/ERC721.json | 1 - out/ERC721Receivable.sol/ERC721Receivable.json | 1 - out/ERC721Utils.sol/ERC721Utils.json | 1 - out/Enums.sol/Enums.json | 1 - out/IAccessControl.sol/IAccessControl.json | 1 - out/IERC165.sol/IERC165.json | 1 - out/IERC20.sol/IERC20.json | 1 - out/IERC20Metadata.sol/IERC20Metadata.json | 1 - out/IERC721.sol/IERC721.json | 1 - out/IERC721Metadata.sol/IERC721Metadata.json | 1 - out/IERC721Receiver.sol/IERC721Receiver.json | 1 - out/IMulticall3.sol/IMulticall3.json | 1 - out/IOGRE20Factory.sol/IOGRE20Factory.json | 1 - out/IOGRE721.sol/IOGRE721.json | 1 - out/IOGRE721Factory.sol/IOGRE721Factory.json | 1 - out/IOGREDAO.sol/IOGREDAO.json | 1 - out/IOGREDAOFactory.sol/IOGREDAOFactory.json | 1 - out/IOGREMarket.sol/IOGREMarket.json | 1 - out/IOGREMarketFactory.sol/IOGREMarketFactory.json | 1 - out/IOGREProposal.sol/IOGREProposal.json | 1 - out/IOGREProposalFactory.sol/IOGREProposalFactory.json | 1 - out/IOGRETreasury.sol/IOGRETreasury.json | 1 - out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json | 1 - out/Math.sol/Math.json | 1 - out/OGRE20.sol/OGRE20.json | 1 - out/OGRE20Factory.sol/OGRE20Factory.json | 1 - out/OGRE721.sol/OGRE721.json | 1 - out/OGRE721Factory.sol/OGRE721Factory.json | 1 - out/OGREBridge.sol/OGREBridge.json | 1 - out/OGREDAO.sol/OGREDAO.json | 1 - out/OGREDAOFactory.sol/OGREDAOFactory.json | 1 - out/OGREFactory.sol/OGREFactory.json | 1 - out/OGREMarket.sol/OGREMarket.json | 1 - out/OGREMarketFactory.sol/OGREMarketFactory.json | 1 - out/OGREProposal.sol/OGREProposal.json | 1 - out/OGREProposalFactory.sol/OGREProposalFactory.json | 1 - out/OGRETest.t.sol/OGRETest.json | 1 - out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json | 1 - out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json | 1 - out/OGRETreasury.sol/OGRETreasury.json | 1 - out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json | 1 - out/Ownable.sol/Ownable.json | 1 - out/Panic.sol/Panic.json | 1 - out/Pausable.sol/Pausable.json | 1 - out/ReentrancyGuard.sol/ReentrancyGuard.json | 1 - out/SafeCast.sol/SafeCast.json | 1 - out/SignedMath.sol/SignedMath.json | 1 - out/StdAssertions.sol/StdAssertions.json | 1 - out/StdChains.sol/StdChains.json | 1 - out/StdCheats.sol/StdCheats.json | 1 - out/StdCheats.sol/StdCheatsSafe.json | 1 - out/StdError.sol/stdError.json | 1 - out/StdInvariant.sol/StdInvariant.json | 1 - out/StdJson.sol/stdJson.json | 1 - out/StdMath.sol/stdMath.json | 1 - out/StdStorage.sol/stdStorage.json | 1 - out/StdStorage.sol/stdStorageSafe.json | 1 - out/StdStyle.sol/StdStyle.json | 1 - out/StdToml.sol/stdToml.json | 1 - out/StdUtils.sol/StdUtils.json | 1 - out/Strings.sol/Strings.json | 1 - out/Structs.sol/Structs.json | 1 - out/StubActionHopper.sol/StubActionHopper.json | 1 - out/StubERC721Receivable.sol/StubERC721Receivable.json | 1 - out/StubOGREFactory.sol/StubOGREFactory.json | 1 - out/Test.sol/Test.json | 1 - out/Vm.sol/Vm.json | 1 - out/Vm.sol/VmSafe.json | 1 - out/build-info/8794160e65dfedcb744790f912986909.json | 1 - out/console.sol/console.json | 1 - out/draft-IERC6093.sol/IERC1155Errors.json | 1 - out/draft-IERC6093.sol/IERC20Errors.json | 1 - out/draft-IERC6093.sol/IERC721Errors.json | 1 - out/safeconsole.sol/safeconsole.json | 1 - 83 files changed, 83 deletions(-) delete mode 100644 out/AccessControl.sol/AccessControl.json delete mode 100644 out/ActionHopper.sol/ActionHopper.json delete mode 100644 out/Base.sol/CommonBase.json delete mode 100644 out/Base.sol/ScriptBase.json delete mode 100644 out/Base.sol/TestBase.json delete mode 100644 out/Constants.sol/Constants.json delete mode 100644 out/Context.sol/Context.json delete mode 100644 out/ERC165.sol/ERC165.json delete mode 100644 out/ERC20.sol/ERC20.json delete mode 100644 out/ERC721.sol/ERC721.json delete mode 100644 out/ERC721Receivable.sol/ERC721Receivable.json delete mode 100644 out/ERC721Utils.sol/ERC721Utils.json delete mode 100644 out/Enums.sol/Enums.json delete mode 100644 out/IAccessControl.sol/IAccessControl.json delete mode 100644 out/IERC165.sol/IERC165.json delete mode 100644 out/IERC20.sol/IERC20.json delete mode 100644 out/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 out/IERC721.sol/IERC721.json delete mode 100644 out/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 out/IERC721Receiver.sol/IERC721Receiver.json delete mode 100644 out/IMulticall3.sol/IMulticall3.json delete mode 100644 out/IOGRE20Factory.sol/IOGRE20Factory.json delete mode 100644 out/IOGRE721.sol/IOGRE721.json delete mode 100644 out/IOGRE721Factory.sol/IOGRE721Factory.json delete mode 100644 out/IOGREDAO.sol/IOGREDAO.json delete mode 100644 out/IOGREDAOFactory.sol/IOGREDAOFactory.json delete mode 100644 out/IOGREMarket.sol/IOGREMarket.json delete mode 100644 out/IOGREMarketFactory.sol/IOGREMarketFactory.json delete mode 100644 out/IOGREProposal.sol/IOGREProposal.json delete mode 100644 out/IOGREProposalFactory.sol/IOGREProposalFactory.json delete mode 100644 out/IOGRETreasury.sol/IOGRETreasury.json delete mode 100644 out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json delete mode 100644 out/Math.sol/Math.json delete mode 100644 out/OGRE20.sol/OGRE20.json delete mode 100644 out/OGRE20Factory.sol/OGRE20Factory.json delete mode 100644 out/OGRE721.sol/OGRE721.json delete mode 100644 out/OGRE721Factory.sol/OGRE721Factory.json delete mode 100644 out/OGREBridge.sol/OGREBridge.json delete mode 100644 out/OGREDAO.sol/OGREDAO.json delete mode 100644 out/OGREDAOFactory.sol/OGREDAOFactory.json delete mode 100644 out/OGREFactory.sol/OGREFactory.json delete mode 100644 out/OGREMarket.sol/OGREMarket.json delete mode 100644 out/OGREMarketFactory.sol/OGREMarketFactory.json delete mode 100644 out/OGREProposal.sol/OGREProposal.json delete mode 100644 out/OGREProposalFactory.sol/OGREProposalFactory.json delete mode 100644 out/OGRETest.t.sol/OGRETest.json delete mode 100644 out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json delete mode 100644 out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json delete mode 100644 out/OGRETreasury.sol/OGRETreasury.json delete mode 100644 out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json delete mode 100644 out/Ownable.sol/Ownable.json delete mode 100644 out/Panic.sol/Panic.json delete mode 100644 out/Pausable.sol/Pausable.json delete mode 100644 out/ReentrancyGuard.sol/ReentrancyGuard.json delete mode 100644 out/SafeCast.sol/SafeCast.json delete mode 100644 out/SignedMath.sol/SignedMath.json delete mode 100644 out/StdAssertions.sol/StdAssertions.json delete mode 100644 out/StdChains.sol/StdChains.json delete mode 100644 out/StdCheats.sol/StdCheats.json delete mode 100644 out/StdCheats.sol/StdCheatsSafe.json delete mode 100644 out/StdError.sol/stdError.json delete mode 100644 out/StdInvariant.sol/StdInvariant.json delete mode 100644 out/StdJson.sol/stdJson.json delete mode 100644 out/StdMath.sol/stdMath.json delete mode 100644 out/StdStorage.sol/stdStorage.json delete mode 100644 out/StdStorage.sol/stdStorageSafe.json delete mode 100644 out/StdStyle.sol/StdStyle.json delete mode 100644 out/StdToml.sol/stdToml.json delete mode 100644 out/StdUtils.sol/StdUtils.json delete mode 100644 out/Strings.sol/Strings.json delete mode 100644 out/Structs.sol/Structs.json delete mode 100644 out/StubActionHopper.sol/StubActionHopper.json delete mode 100644 out/StubERC721Receivable.sol/StubERC721Receivable.json delete mode 100644 out/StubOGREFactory.sol/StubOGREFactory.json delete mode 100644 out/Test.sol/Test.json delete mode 100644 out/Vm.sol/Vm.json delete mode 100644 out/Vm.sol/VmSafe.json delete mode 100644 out/build-info/8794160e65dfedcb744790f912986909.json delete mode 100644 out/console.sol/console.json delete mode 100644 out/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 out/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 out/draft-IERC6093.sol/IERC721Errors.json delete mode 100644 out/safeconsole.sol/safeconsole.json diff --git a/out/AccessControl.sol/AccessControl.json b/out/AccessControl.sol/AccessControl.json deleted file mode 100644 index 80971f1..0000000 --- a/out/AccessControl.sol/AccessControl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":"AccessControl"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/ActionHopper.sol/ActionHopper.json b/out/ActionHopper.sol/ActionHopper.json deleted file mode 100644 index 3456bac..0000000 --- a/out/ActionHopper.sol/ActionHopper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delay()":"6a42b8f8","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","loadedActions(bytes32)":"6e8c7ab9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}}},\"kind\":\"dev\",\"methods\":{\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}}},\"title\":\"Action Hopper Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/ActionHopper.sol\":\"ActionHopper\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/ActionHopper.sol":"ActionHopper"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"}},"version":1},"id":49} \ No newline at end of file diff --git a/out/Base.sol/CommonBase.json b/out/Base.sol/CommonBase.json deleted file mode 100644 index 9f48f23..0000000 --- a/out/Base.sol/CommonBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Base.sol/ScriptBase.json b/out/Base.sol/ScriptBase.json deleted file mode 100644 index 2f7f598..0000000 --- a/out/Base.sol/ScriptBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Base.sol/TestBase.json b/out/Base.sol/TestBase.json deleted file mode 100644 index bba0131..0000000 --- a/out/Base.sol/TestBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/Constants.sol/Constants.json b/out/Constants.sol/Constants.json deleted file mode 100644 index b9fec2b..0000000 --- a/out/Constants.sol/Constants.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DAO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DAO_INVITE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MARKET_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPTIONS_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROPOSAL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x6101a1610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220eddf1536cfdabd14a86d436def18856696ead558db3c367a1a349cb15d0fd29964736f6c63430008140033","sourceMap":"65:846:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:846:27;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c8063468c8a611461006f5780635b1402b7146100a85780635e90ca16146100cf578063769ac726146100f6578063890e4b491461011d578063a314fb1614610144575b5f80fd5b6100967ff591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b9681565b60405190815260200160405180910390f35b6100967fb6447826023ada0f6f9368da69757c63996b306bbb3368abf49295060fd4b89081565b6100967f49b9cd9e19b40e24eab999bc6ebb1c3f06990f570acd2c1074f2593bcfdb93a181565b6100967f27f406f19fd1b378cfb619bc553f0cd86d17e85e38ecad46997fb68ad17b730781565b6100967ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a81565b6100967f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a68156fea2646970667358221220eddf1536cfdabd14a86d436def18856696ead558db3c367a1a349cb15d0fd29964736f6c63430008140033","sourceMap":"65:846:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;110:58;;146:22;110:58;;;;;168:25:30;;;156:2;141:18;110:58:27;;;;;;;500:66;;540:26;500:66;;601:68;;642:27;601:68;;770;;811:27;770:68;;243:60;;280:23;243:60;;402:64;;441:25;402:64;","linkReferences":{}},"methodIdentifiers":{"DAO_ADMIN()":"468c8a61","DAO_INVITE()":"890e4b49","MARKET_ADMIN()":"a314fb16","OPTIONS_ADMIN()":"5b1402b7","PROPOSAL_ADMIN()":"5e90ca16","TREASURY_ADMIN()":"769ac726"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DAO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAO_INVITE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MARKET_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPTIONS_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DAO_INVITE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MARKET_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPTIONS_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSAL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Constants.sol":"Constants"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"}},"version":1},"id":27} \ No newline at end of file diff --git a/out/Context.sol/Context.json b/out/Context.sol/Context.json deleted file mode 100644 index 825616e..0000000 --- a/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/ERC165.sol/ERC165.json b/out/ERC165.sol/ERC165.json deleted file mode 100644 index 6fbc304..0000000 --- a/out/ERC165.sol/ERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json deleted file mode 100644 index a04f29f..0000000 --- a/out/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. Both values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. Both values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/ERC721.sol/ERC721.json b/out/ERC721.sol/ERC721.json deleted file mode 100644 index 8ef5d34..0000000 --- a/out/ERC721.sol/ERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":"ERC721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":7} \ No newline at end of file diff --git a/out/ERC721Receivable.sol/ERC721Receivable.json b/out/ERC721Receivable.sol/ERC721Receivable.json deleted file mode 100644 index 3349503..0000000 --- a/out/ERC721Receivable.sol/ERC721Receivable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"allows children to receive and send erc721 tokens\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/ERC721Receivable.sol\":\"ERC721Receivable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/ERC721Receivable.sol":"ERC721Receivable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"}},"version":1},"id":50} \ No newline at end of file diff --git a/out/ERC721Utils.sol/ERC721Utils.json b/out/ERC721Utils.sol/ERC721Utils.json deleted file mode 100644 index dee3c05..0000000 --- a/out/ERC721Utils.sol/ERC721Utils.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e90c3fb05d270d81ca1d001765609aa68e5b9753df2f1d0dd128ac542224fdbd64736f6c63430008140033","sourceMap":"431:1488:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;431:1488:11;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e90c3fb05d270d81ca1d001765609aa68e5b9753df2f1d0dd128ac542224fdbd64736f6c63430008140033","sourceMap":"431:1488:11:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-721 utility functions. See https://eips.ethereum.org/EIPS/eip-721[ERC-721]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":\"ERC721Utils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":"ERC721Utils"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file diff --git a/out/Enums.sol/Enums.json b/out/Enums.sol/Enums.json deleted file mode 100644 index 4b2e299..0000000 --- a/out/Enums.sol/Enums.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204f46e860bc6e9566fd887e6f07cc8d22943a0d892bcde32317c5b7713c2199d064736f6c63430008140033","sourceMap":"65:915:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:915:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204f46e860bc6e9566fd887e6f07cc8d22943a0d892bcde32317c5b7713c2199d064736f6c63430008140033","sourceMap":"65:915:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Enums.sol\":\"Enums\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Enums.sol":"Enums"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"}},"version":1},"id":28} \ No newline at end of file diff --git a/out/IAccessControl.sol/IAccessControl.json b/out/IAccessControl.sol/IAccessControl.json deleted file mode 100644 index 80bb621..0000000 --- a/out/IAccessControl.sol/IAccessControl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":"IAccessControl"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/IERC165.sol/IERC165.json b/out/IERC165.sol/IERC165.json deleted file mode 100644 index 4dce552..0000000 --- a/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20.json b/out/IERC20.sol/IERC20.json deleted file mode 100644 index f7758ba..0000000 --- a/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/IERC20Metadata.sol/IERC20Metadata.json b/out/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index f3e7959..0000000 --- a/out/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721.json b/out/IERC721.sol/IERC721.json deleted file mode 100644 index 7130e5c..0000000 --- a/out/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/IERC721Metadata.sol/IERC721Metadata.json b/out/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 7a5f509..0000000 --- a/out/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/out/IERC721Receiver.sol/IERC721Receiver.json b/out/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index 30e7c96..0000000 --- a/out/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC-721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC-721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"}},"version":1},"id":9} \ No newline at end of file diff --git a/out/IMulticall3.sol/IMulticall3.json b/out/IMulticall3.sol/IMulticall3.json deleted file mode 100644 index 173fc34..0000000 --- a/out/IMulticall3.sol/IMulticall3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/out/IOGRE20Factory.sol/IOGRE20Factory.json b/out/IOGRE20Factory.sol/IOGRE20Factory.json deleted file mode 100644 index d539951..0000000 --- a/out/IOGRE20Factory.sol/IOGRE20Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGRE20","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRE20(string,string,address)":"77e070cc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE 20 Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE20Factory.sol\":\"IOGRE20Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE20Factory.sol\":{\"keccak256\":\"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c\",\"dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE20","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE20Factory.sol":"IOGRE20Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE20Factory.sol":{"keccak256":"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c","urls":["bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c","dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB"],"license":"UNLICENSED"}},"version":1},"id":61} \ No newline at end of file diff --git a/out/IOGRE721.sol/IOGRE721.json b/out/IOGRE721.sol/IOGRE721.json deleted file mode 100644 index 6aad51f..0000000 --- a/out/IOGRE721.sol/IOGRE721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(uint256)":"42966c68","mint(address,uint256)":"40c10f19"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE 721 interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE721.sol\":\"IOGRE721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE721.sol":"IOGRE721"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"}},"version":1},"id":62} \ No newline at end of file diff --git a/out/IOGRE721Factory.sol/IOGRE721Factory.json b/out/IOGRE721Factory.sol/IOGRE721Factory.json deleted file mode 100644 index 2d29ed8..0000000 --- a/out/IOGRE721Factory.sol/IOGRE721Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGRE721","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRE721(string,string,address)":"ef649826"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE NFT Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRE721Factory.sol\":\"IOGRE721Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE721","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRE721Factory.sol":"IOGRE721Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/IOGREDAO.sol/IOGREDAO.json b/out/IOGREDAO.sol/IOGREDAO.json deleted file mode 100644 index 9e351ee..0000000 --- a/out/IOGREDAO.sol/IOGREDAO.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoMetadata()":"0787e15c","daoName()":"48976936","getMemberStatus(uint256)":"7d0d719b","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAO.sol\":\"IOGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAO.sol":"IOGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"}},"version":1},"id":22} \ No newline at end of file diff --git a/out/IOGREDAOFactory.sol/IOGREDAOFactory.json b/out/IOGREDAOFactory.sol/IOGREDAOFactory.json deleted file mode 100644 index 66834ef..0000000 --- a/out/IOGREDAOFactory.sol/IOGREDAOFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"prpoopsalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"prpoopsalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE DAO Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREDAOFactory.sol\":\"IOGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREDAOFactory.sol\":{\"keccak256\":\"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e\",\"dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"prpoopsalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREDAOFactory.sol":"IOGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREDAOFactory.sol":{"keccak256":"0xee19c62d95914b189d97b0ba6f7f64bf9370f9f26adacdf7cbad60fb40ff6d31","urls":["bzz-raw://0c21d092d05cc1894c55180d0e3c209dffbfb9d6b98596cbf1768ced00518f1e","dweb:/ipfs/QmWd23Z6WqP6gob7LAf93D8zxtGqR3VEtVYJA15PhQeb9E"],"license":"UNLICENSED"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/IOGREMarket.sol/IOGREMarket.json b/out/IOGREMarket.sol/IOGREMarket.json deleted file mode 100644 index bdfe28e..0000000 --- a/out/IOGREMarket.sol/IOGREMarket.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowedContracts","inputs":[{"name":"contractAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","orderExists(bytes32)":"2cb77e9f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarket interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarket.sol\":\"IOGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREMarket.sol\":{\"keccak256\":\"0x4308fb2631573560ef562b501099c48bc5f9bccaf02d9007dbec33307344f413\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e8eeef6b0e9f5ad3cf5139ca60d320ec631c177673986205c2193ba3cf533067\",\"dweb:/ipfs/QmeavrobqiYnk2Urs6sg7xfuG1CXpX3kMGKm6Ps5k7a8Hh\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarket.sol":"IOGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarket.sol":{"keccak256":"0x4308fb2631573560ef562b501099c48bc5f9bccaf02d9007dbec33307344f413","urls":["bzz-raw://e8eeef6b0e9f5ad3cf5139ca60d320ec631c177673986205c2193ba3cf533067","dweb:/ipfs/QmeavrobqiYnk2Urs6sg7xfuG1CXpX3kMGKm6Ps5k7a8Hh"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/IOGREMarketFactory.sol/IOGREMarketFactory.json b/out/IOGREMarketFactory.sol/IOGREMarketFactory.json deleted file mode 100644 index 56062fe..0000000 --- a/out/IOGREMarketFactory.sol/IOGREMarketFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGREMarketFactory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREMarketFactory.sol\":\"IOGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGREMarketFactory.sol\":{\"keccak256\":\"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35\",\"dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREMarketFactory.sol":"IOGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREMarketFactory.sol":{"keccak256":"0x780140b59309c95ef11a82614e95789df9a995312a38e63c092f9313893ca8d0","urls":["bzz-raw://90e80de40007dca630c5ff00460ecfb61e543eae5971c642eb2d50ea7eebfa35","dweb:/ipfs/QmbQWLUVBx1nMQG6MwNT28qFwRa5FJ2dkZCrzLkDFBZLBr"],"license":"UNLICENSED"}},"version":1},"id":67} \ No newline at end of file diff --git a/out/IOGREProposal.sol/IOGREProposal.json b/out/IOGREProposal.sol/IOGREProposal.json deleted file mode 100644 index 038a27b..0000000 --- a/out/IOGREProposal.sol/IOGREProposal.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteTotals","inputs":[{"name":"vote","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","proposalTitle()":"e5045752","setActionReady(uint256,uint256)":"280b0c87","startTime()":"78e97925","status()":"200d2ed2","updateStatus(uint8)":"0b3af7f9","voteTotals(uint256)":"814a1d8e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE proposal interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposal.sol\":\"IOGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[{"internalType":"uint256","name":"vote","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposal.sol":"IOGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/IOGREProposalFactory.sol/IOGREProposalFactory.json b/out/IOGREProposalFactory.sol/IOGREProposalFactory.json deleted file mode 100644 index c97f2e2..0000000 --- a/out/IOGREProposalFactory.sol/IOGREProposalFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Proposal Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGREProposalFactory.sol\":\"IOGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGREProposalFactory.sol":"IOGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/IOGRETreasury.sol/IOGRETreasury.json b/out/IOGRETreasury.sol/IOGRETreasury.json deleted file mode 100644 index 20383e2..0000000 --- a/out/IOGRETreasury.sol/IOGRETreasury.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"daoAddress()":"2131c68c","sendERC721(address,address,uint256)":"b72ac8ea"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasury.sol\":\"IOGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0x8c1d278c81d054bf6ef5c60661e7f41f2624fbe7233429fe2ee518ffd1b1541d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://84c863bd27edd0e1658e368f4cc192b47da3dfebcee1503e8198a32afd4fff8a\",\"dweb:/ipfs/Qmdnp2BG3VzsTE8Kb7fp5HZj5D5vWFs83HrhtEa3i6oS15\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasury.sol":"IOGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasury.sol":{"keccak256":"0x8c1d278c81d054bf6ef5c60661e7f41f2624fbe7233429fe2ee518ffd1b1541d","urls":["bzz-raw://84c863bd27edd0e1658e368f4cc192b47da3dfebcee1503e8198a32afd4fff8a","dweb:/ipfs/Qmdnp2BG3VzsTE8Kb7fp5HZj5D5vWFs83HrhtEa3i6oS15"],"license":"UNLICENSED"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json b/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json deleted file mode 100644 index 8777c70..0000000 --- a/out/IOGRETreasuryFactory.sol/IOGRETreasuryFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"OGRE Treasury Factory interface definition\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IOGRETreasuryFactory.sol\":\"IOGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/interfaces/IOGRETreasuryFactory.sol\":{\"keccak256\":\"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732\",\"dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IOGRETreasuryFactory.sol":"IOGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IOGRETreasuryFactory.sol":{"keccak256":"0x62103d58f1d69c5a40d25778571b362efe6540ce230521652c2f8ef172bd62c6","urls":["bzz-raw://7fb7e4a2f7440af1f5ab1ba1c0f564b2d541a4b1b04c67e44cb8098a0a3d1732","dweb:/ipfs/QmQ8ws58uEzXK7pZa2sdVwoZ3aZQJoFfQhnXBaBDGP4ioX"],"license":"UNLICENSED"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/Math.sol/Math.json b/out/Math.sol/Math.json deleted file mode 100644 index 0a86be7..0000000 --- a/out/Math.sol/Math.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122092dc486e96a3349b7f6fd03dcf78cbf3a15f9c7e92273b68316490dd71f337dc64736f6c63430008140033","sourceMap":"281:31863:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:31863:19;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122092dc486e96a3349b7f6fd03dcf78cbf3a15f9c7e92273b68316490dd71f337dc64736f6c63430008140033","sourceMap":"281:31863:19:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/OGRE20.sol/OGRE20.json b/out/OGRE20.sol/OGRE20.json deleted file mode 100644 index a28e897..0000000 --- a/out/OGRE20.sol/OGRE20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033","sourceMap":"295:499:40:-:0;;;350:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;444:5;451:7;430:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1871:51:76;1844:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1648:5:4;:13;1656:5;1648;:13;:::i;:::-;-1:-1:-1;1671:7:4;:17;1681:7;1671;:17;:::i;:::-;;1582:113;;350:112:40;;;295:499;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:76;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:76;-1:-1:-1;;;;;;1640:31:76;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1933:380::-;2012:1;2008:12;;;;2055;;;2076:61;;2130:4;2122:6;2118:17;2108:27;;2076:61;2183:2;2175:6;2172:14;2152:18;2149:38;2146:161;;2229:10;2224:3;2220:20;2217:1;2210:31;2264:4;2261:1;2254:15;2292:4;2289:1;2282:15;2146:161;;1933:380;;;:::o;2444:545::-;2546:2;2541:3;2538:11;2535:448;;;2582:1;2607:5;2603:2;2596:17;2652:4;2648:2;2638:19;2722:2;2710:10;2706:19;2703:1;2699:27;2693:4;2689:38;2758:4;2746:10;2743:20;2740:47;;;-1:-1:-1;2781:4:76;2740:47;2836:2;2831:3;2827:12;2824:1;2820:20;2814:4;2810:31;2800:41;;2891:82;2909:2;2902:5;2899:13;2891:82;;;2954:17;;;2935:1;2924:13;2891:82;;;2895:3;;;2535:448;2444:545;;;:::o;3165:1352::-;3285:10;;-1:-1:-1;;;;;3307:30:76;;3304:56;;;3340:18;;:::i;:::-;3369:97;3459:6;3419:38;3451:4;3445:11;3419:38;:::i;:::-;3413:4;3369:97;:::i;:::-;3521:4;;3585:2;3574:14;;3602:1;3597:663;;;;4304:1;4321:6;4318:89;;;-1:-1:-1;4373:19:76;;;4367:26;4318:89;-1:-1:-1;;3122:1:76;3118:11;;;3114:24;3110:29;3100:40;3146:1;3142:11;;;3097:57;4420:81;;3567:944;;3597:663;2391:1;2384:14;;;2428:4;2415:18;;-1:-1:-1;;3633:20:76;;;3751:236;3765:7;3762:1;3759:14;3751:236;;;3854:19;;;3848:26;3833:42;;3946:27;;;;3914:1;3902:14;;;;3781:19;;3751:236;;;3755:3;4015:6;4006:7;4003:19;4000:201;;;4076:19;;;4070:26;-1:-1:-1;;4159:1:76;4155:14;;;4171:3;4151:24;4147:37;4143:42;4128:58;4113:74;;4000:201;-1:-1:-1;;;;;4247:1:76;4231:14;;;4227:22;4214:36;;-1:-1:-1;3165:1352:76:o;:::-;295:499:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033","sourceMap":"295:499:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3979:186;;;;;;;;;;-1:-1:-1;3979:186:4;;;;;:::i;:::-;;:::i;:::-;;;1169:14:76;;1162:22;1144:41;;1132:2;1117:18;3979:186:4;1004:187:76;2830:97:4;;;;;;;;;;-1:-1:-1;2908:12:4;;2830:97;;;1342:25:76;;;1330:2;1315:18;2830:97:4;1196:177:76;4757:244:4;;;;;;;;;;-1:-1:-1;4757:244:4;;;;;:::i;:::-;;:::i;2688:82::-;;;;;;;;;;-1:-1:-1;2688:82:4;;2761:2;1853:36:76;;1841:2;1826:18;2688:82:4;1711:184:76;514:115:40;;;;;;:::i;:::-;;:::i;:::-;;1726:84:14;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2985:116:4;;;;;;;;;;-1:-1:-1;2985:116:4;;;;;:::i;:::-;-1:-1:-1;;;;;3076:18:4;3050:7;3076:18;;;:9;:18;;;;;;;2985:116;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:2;;;2237:51:76;;2225:2;2210:18;1638:85:2;2091:203:76;1962:93:4;;;;;;;;;;;;;:::i;681:111:40:-;;;;;;;;;;-1:-1:-1;681:111:40;;;;;:::i;:::-;;:::i;3296:178:4:-;;;;;;;;;;-1:-1:-1;3296:178:4;;;;;:::i;:::-;;:::i;3532:140::-;;;;;;;;;;-1:-1:-1;3532:140:4;;;;;:::i;:::-;-1:-1:-1;;;;;3638:18:4;;;3612:7;3638:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3532:140;2543:215:2;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;1760:89:4:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3979:186::-;4052:4;735:10:12;4106:31:4;735:10:12;4122:7:4;4131:5;4106:8;:31::i;:::-;4154:4;4147:11;;;3979:186;;;;;:::o;4757:244::-;4844:4;735:10:12;4900:37:4;4916:4;735:10:12;4931:5:4;4900:15;:37::i;:::-;4947:26;4957:4;4963:2;4967:5;4947:9;:26::i;:::-;-1:-1:-1;4990:4:4;;4757:244;-1:-1:-1;;;;4757:244:4:o;514:115:40:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;605:17:40::2;611:2;615:6;605:5;:17::i;:::-;514:115:::0;;:::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1962:93:4:-;2009:13;2041:7;2034:14;;;;;:::i;681:111:40:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;766::40::2;772:4;778:6;766:5;:19::i;3296:178:4:-:0;3365:4;735:10:12;3419:27:4;735:10:12;3436:2:4;3440:5;3419:9;:27::i;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;2237:51:76::0;2210:18;;2672:31:2::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;8707:128:4:-;8791:37;8800:5;8807:7;8816:5;8823:4;8791:8;:37::i;:::-;8707:128;;;:::o;10396:476::-;-1:-1:-1;;;;;3638:18:4;;;10495:24;3638:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10561:36:4;;10557:309;;;10636:5;10617:16;:24;10613:130;;;10668:60;;-1:-1:-1;;;10668:60:4;;-1:-1:-1;;;;;3169:32:76;;10668:60:4;;;3151:51:76;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;10668:60:4;2949:345:76;10613:130:4;10784:57;10793:5;10800:7;10828:5;10809:16;:24;10835:5;10784:8;:57::i;:::-;10485:387;10396:476;;;:::o;5374:300::-;-1:-1:-1;;;;;5457:18:4;;5453:86;;5498:30;;-1:-1:-1;;;5498:30:4;;5525:1;5498:30;;;2237:51:76;2210:18;;5498:30:4;2091:203:76;5453:86:4;-1:-1:-1;;;;;5552:16:4;;5548:86;;5591:32;;-1:-1:-1;;;5591:32:4;;5620:1;5591:32;;;2237:51:76;2210:18;;5591:32:4;2091:203:76;5548:86:4;5643:24;5651:4;5657:2;5661:5;5643:7;:24::i;1796:162:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;2237:51:76;2210:18;;1901:40:2;2091:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;7439:208:4;-1:-1:-1;;;;;7509:21:4;;7505:91;;7553:32;;-1:-1:-1;;;7553:32:4;;7582:1;7553:32;;;2237:51:76;2210:18;;7553:32:4;2091:203:76;7505:91:4;7605:35;7621:1;7625:7;7634:5;7605:7;:35::i;2912:187:2:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;7965:206:4:-;-1:-1:-1;;;;;8035:21:4;;8031:89;;8079:30;;-1:-1:-1;;;8079:30:4;;8106:1;8079:30;;;2237:51:76;2210:18;;8079:30:4;2091:203:76;8031:89:4;8129:35;8137:7;8154:1;8158:5;8129:7;:35::i;9682:432::-;-1:-1:-1;;;;;9794:19:4;;9790:89;;9836:32;;-1:-1:-1;;;9836:32:4;;9865:1;9836:32;;;2237:51:76;2210:18;;9836:32:4;2091:203:76;9790:89:4;-1:-1:-1;;;;;9892:21:4;;9888:90;;9936:31;;-1:-1:-1;;;9936:31:4;;9964:1;9936:31;;;2237:51:76;2210:18;;9936:31:4;2091:203:76;9888:90:4;-1:-1:-1;;;;;9987:18:4;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10032:76;;;;10082:7;-1:-1:-1;;;;;10066:31:4;10075:5;-1:-1:-1;;;;;10066:31:4;;10091:5;10066:31;;;;1342:25:76;;1330:2;1315:18;;1196:177;10066:31:4;;;;;;;;9682:432;;;;:::o;5989:1107::-;-1:-1:-1;;;;;6078:18:4;;6074:540;;6230:5;6214:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6074:540:4;;-1:-1:-1;6074:540:4;;-1:-1:-1;;;;;6288:15:4;;6266:19;6288:15;;;:9;:15;;;;;;6321:19;;;6317:115;;;6367:50;;-1:-1:-1;;;6367:50:4;;-1:-1:-1;;;;;3169:32:76;;6367:50:4;;;3151:51:76;3218:18;;;3211:34;;;3261:18;;;3254:34;;;3124:18;;6367:50:4;2949:345:76;6317:115:4;-1:-1:-1;;;;;6552:15:4;;;;;;:9;:15;;;;;6570:19;;;;6552:37;;6074:540;-1:-1:-1;;;;;6628:16:4;;6624:425;;6791:12;:21;;;;;;;6624:425;;;-1:-1:-1;;;;;7002:13:4;;;;;;:9;:13;;;;;:22;;;;;;6624:425;7079:2;-1:-1:-1;;;;;7064:25:4;7073:4;-1:-1:-1;;;;;7064:25:4;;7083:5;7064:25;;;;1342::76;;1330:2;1315:18;;1196:177;7064:25:4;;;;;;;;5989:1107;;;:::o;14:548:76:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:76;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:76:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:76:o;2299:260::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;2467:29;2486:9;2467:29;:::i;:::-;2457:39;;2515:38;2549:2;2538:9;2534:18;2515:38;:::i;:::-;2505:48;;2299:260;;;;;:::o;2564:380::-;2643:1;2639:12;;;;2686;;;2707:61;;2761:4;2753:6;2749:17;2739:27;;2707:61;2814:2;2806:6;2803:14;2783:18;2780:38;2777:161;;2860:10;2855:3;2851:20;2848:1;2841:31;2895:4;2892:1;2885:15;2923:4;2920:1;2913:15;2777:161;;2564:380;;;:::o;3299:222::-;3364:9;;;3385:10;;;3382:133;;;3437:10;3432:3;3428:20;3425:1;3418:31;3472:4;3469:1;3462:15;3500:4;3497:1;3490:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"details\":\"burn token amount\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"mint(address,uint256)\":{\"details\":\"mint token amount\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine ERC20 Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRE20.sol\":\"OGRE20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"src/OGRE20.sol\":{\"keccak256\":\"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51\",\"dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(address,uint256)":{"details":"burn token amount"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"mint(address,uint256)":{"details":"mint token amount"},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRE20.sol":"OGRE20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"src/OGRE20.sol":{"keccak256":"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98","urls":["bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51","dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/out/OGRE20Factory.sol/OGRE20Factory.json b/out/OGRE20Factory.sol/OGRE20Factory.json deleted file mode 100644 index 7d3a684..0000000 --- a/out/OGRE20Factory.sol/OGRE20Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRE20","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506110a68061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806377e070cc14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b610d87806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033a2646970667358221220a962b5f060294c108ce51eea71fbc38808159c25d621ba60837b3f892e04283e64736f6c63430008140033","sourceMap":"171:391:55:-:0;;;232:16;;;;;;;;;;171:391;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806377e070cc14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b610d87806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b5060405162000d8738038062000d878339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060046200007e8382620002b9565b5060056200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6109f8806200038f5f395ff3fe6080604052600436106100e4575f3560e01c806370a08231116100875780639dc29fac116100575780639dc29fac1461024d578063a9059cbb1461026c578063dd62ed3e1461028b578063f2fde38b146102cf575f80fd5b806370a08231146101cb578063715018a6146101ff5780638da5cb5b1461021357806395d89b4114610239575f80fd5b806323b872dd116100c257806323b872dd1461015f578063313ce5671461017e57806340c10f19146101995780635c975abb146101ae575f80fd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f80fd5b3480156100f3575f80fd5b506100fc6102ee565b6040516101099190610853565b60405180910390f35b34801561011d575f80fd5b5061013161012c3660046108b9565b61037e565b6040519015158152602001610109565b34801561014c575f80fd5b506003545b604051908152602001610109565b34801561016a575f80fd5b506101316101793660046108e1565b610397565b348015610189575f80fd5b5060405160128152602001610109565b6101ac6101a73660046108b9565b6103ba565b005b3480156101b9575f80fd5b505f54600160a01b900460ff16610131565b3480156101d6575f80fd5b506101516101e536600461091a565b6001600160a01b03165f9081526001602052604090205490565b34801561020a575f80fd5b506101ac6103d8565b34801561021e575f80fd5b505f546040516001600160a01b039091168152602001610109565b348015610244575f80fd5b506100fc6103eb565b348015610258575f80fd5b506101ac6102673660046108b9565b6103fa565b348015610277575f80fd5b506101316102863660046108b9565b610414565b348015610296575f80fd5b506101516102a536600461093a565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102da575f80fd5b506101ac6102e936600461091a565b610421565b6060600480546102fd9061096b565b80601f01602080910402602001604051908101604052809291908181526020018280546103299061096b565b80156103745780601f1061034b57610100808354040283529160200191610374565b820191905f5260205f20905b81548152906001019060200180831161035757829003601f168201915b5050505050905090565b5f3361038b818585610463565b60019150505b92915050565b5f336103a4858285610475565b6103af8585856104f1565b506001949350505050565b6103c261054e565b6103ca61057a565b6103d482826105a4565b5050565b6103e061054e565b6103e95f6105d8565b565b6060600580546102fd9061096b565b61040261054e565b61040a61057a565b6103d48282610627565b5f3361038b8185856104f1565b61042961054e565b6001600160a01b03811661045757604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610460816105d8565b50565b610470838383600161065b565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198110156104eb57818110156104dd57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161044e565b6104eb84848484035f61065b565b50505050565b6001600160a01b03831661051a57604051634b637e8f60e11b81525f600482015260240161044e565b6001600160a01b0382166105435760405163ec442f0560e01b81525f600482015260240161044e565b61047083838361072d565b5f546001600160a01b031633146103e95760405163118cdaa760e01b815233600482015260240161044e565b5f54600160a01b900460ff16156103e95760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0382166105cd5760405163ec442f0560e01b81525f600482015260240161044e565b6103d45f838361072d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661065057604051634b637e8f60e11b81525f600482015260240161044e565b6103d4825f8361072d565b6001600160a01b0384166106845760405163e602df0560e01b81525f600482015260240161044e565b6001600160a01b0383166106ad57604051634a1406b160e11b81525f600482015260240161044e565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156104eb57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071f91815260200190565b60405180910390a350505050565b6001600160a01b038316610757578060035f82825461074c91906109a3565b909155506107c79050565b6001600160a01b0383165f90815260016020526040902054818110156107a95760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161044e565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166107e357600380548290039055610801565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084691815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561087e57858101830151858201604001528201610862565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b4575f80fd5b919050565b5f80604083850312156108ca575f80fd5b6108d38361089e565b946020939093013593505050565b5f805f606084860312156108f3575f80fd5b6108fc8461089e565b925061090a6020850161089e565b9150604084013590509250925092565b5f6020828403121561092a575f80fd5b6109338261089e565b9392505050565b5f806040838503121561094b575f80fd5b6109548361089e565b91506109626020840161089e565b90509250929050565b600181811c9082168061097f57607f821691505b60208210810361099d57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039157634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d0776ebf5ffb4b8b155702f992dadab053fdd2587f2008c8eb9cf8e16d4823464736f6c63430008140033a2646970667358221220a962b5f060294c108ce51eea71fbc38808159c25d621ba60837b3f892e04283e64736f6c63430008140033","sourceMap":"171:391:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;254:306:55;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1938:32:76;;;1920:51;;1908:2;1893:18;254:306:55;1774:203:76;254:306:55;350:7;369:13;396:4;402:6;410:5;385:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;369:47;;445:1;426:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;461:60:55;;;-1:-1:-1;;;;;3380:15:76;;3362:34;;503:4:55;3427:2:76;3412:18;;3405:43;510:10:55;3464:18:76;;;3457:43;461:60:55;;;;;;;3312:2:76;461:60:55;;;546:6;254:306;-1:-1:-1;;;;254:306:55:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:717::-;1149:6;1157;1165;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1274:9;1261:23;1303:18;1344:2;1336:6;1333:14;1330:34;;;1360:1;1357;1350:12;1330:34;1383:50;1425:7;1416:6;1405:9;1401:22;1383:50;:::i;:::-;1373:60;;1486:2;1475:9;1471:18;1458:32;1442:48;;1515:2;1505:8;1502:16;1499:36;;;1531:1;1528;1521:12;1499:36;;1554:52;1598:7;1587:8;1576:9;1572:24;1554:52;:::i;:::-;1544:62;-1:-1:-1;;1656:2:76;1641:18;;1628:32;-1:-1:-1;;;;;1689:31:76;;1679:42;;1669:70;;1735:1;1732;1725:12;1669:70;1758:5;1748:15;;;1052:717;;;;;:::o;1982:423::-;2024:3;2062:5;2056:12;2089:6;2084:3;2077:19;2114:1;2124:162;2138:6;2135:1;2132:13;2124:162;;;2200:4;2256:13;;;2252:22;;2246:29;2228:11;;;2224:20;;2217:59;2153:12;2124:162;;;2128:3;2331:1;2324:4;2315:6;2310:3;2306:16;2302:27;2295:38;2394:4;2387:2;2383:7;2378:2;2370:6;2366:15;2362:29;2357:3;2353:39;2349:50;2342:57;;;1982:423;;;;:::o;2410:480::-;2635:2;2624:9;2617:21;2598:4;2661:45;2702:2;2691:9;2687:18;2679:6;2661:45;:::i;:::-;2754:9;2746:6;2742:22;2737:2;2726:9;2722:18;2715:50;2782:33;2808:6;2800;2782:33;:::i;:::-;2774:41;;;2880:1;2876;2871:3;2867:11;2863:19;2855:6;2851:32;2846:2;2835:9;2831:18;2824:60;2410:480;;;;;;:::o;2895:222::-;2960:9;;;2981:10;;;2978:133;;;3033:10;3028:3;3024:20;3021:1;3014:31;3068:4;3065:1;3058:15;3096:4;3093:1;3086:15;2978:133;2895:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRE20(string,string,address)":"77e070cc","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE20\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRE20Factory.sol\":\"OGRE20Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"src/OGRE20.sol\":{\"keccak256\":\"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51\",\"dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRE20Factory.sol\":{\"keccak256\":\"0xc961315e0e9024021495b5fcc43b5b5386f69bfa454dd918f193ab2677870b9c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://623561fe59a23e7716430651b2d27fbed986ae142cfb61cdc72f6126e5c94975\",\"dweb:/ipfs/QmPW5roe8eidzZxzwZgnMcrHaM27Do4LgbofcK692ZRMkd\"]},\"src/interfaces/IOGRE20Factory.sol\":{\"keccak256\":\"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c\",\"dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE20","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRE20Factory.sol":"OGRE20Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a","urls":["bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a","dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"src/OGRE20.sol":{"keccak256":"0x7615b5a5f6b3ce8e93197ca7dbd46c38103f9eacc81298686d7b8273f0356d98","urls":["bzz-raw://df1482264f89a2745bbc4eb439dfb4727b8e00ee9cf66a477a7c3f1c23915c51","dweb:/ipfs/QmQbYSjdY8vQkbBiybkjLake1NTLNktLsrqq4oebcxfZpz"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRE20Factory.sol":{"keccak256":"0xc961315e0e9024021495b5fcc43b5b5386f69bfa454dd918f193ab2677870b9c","urls":["bzz-raw://623561fe59a23e7716430651b2d27fbed986ae142cfb61cdc72f6126e5c94975","dweb:/ipfs/QmPW5roe8eidzZxzwZgnMcrHaM27Do4LgbofcK692ZRMkd"],"license":"UNLICENSED"},"src/interfaces/IOGRE20Factory.sol":{"keccak256":"0x3cc3a42b8e271aedc87224294d37b8fcba9484bd029e11ba7589f0e83a10f84c","urls":["bzz-raw://f0697ac7db92331c856f39197777f9f65b15a0292559fcebbbf05182e7bb343c","dweb:/ipfs/Qmb71qtF4JkWJKohURgCzMGdwQa2QfGWZMSBUnpgCZaVmB"],"license":"UNLICENSED"}},"version":1},"id":55} \ No newline at end of file diff --git a/out/OGRE721.sol/OGRE721.json b/out/OGRE721.sol/OGRE721.json deleted file mode 100644 index cf3262e..0000000 --- a/out/OGRE721.sol/OGRE721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033","sourceMap":"411:482:41:-:0;;;468:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;563:5;570:7;548:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1871:51:76;1844:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1446:5:7;:13;1454:5;1446;:13;:::i;:::-;-1:-1:-1;1469:7:7;:17;1479:7;1469;:17;:::i;:::-;;1380:113;;468::41;;;411:482;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:76:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:76;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:76;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:76:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:76;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:76;-1:-1:-1;;;;;;1640:31:76;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1933:380::-;2012:1;2008:12;;;;2055;;;2076:61;;2130:4;2122:6;2118:17;2108:27;;2076:61;2183:2;2175:6;2172:14;2152:18;2149:38;2146:161;;2229:10;2224:3;2220:20;2217:1;2210:31;2264:4;2261:1;2254:15;2292:4;2289:1;2282:15;2146:161;;1933:380;;;:::o;2444:545::-;2546:2;2541:3;2538:11;2535:448;;;2582:1;2607:5;2603:2;2596:17;2652:4;2648:2;2638:19;2722:2;2710:10;2706:19;2703:1;2699:27;2693:4;2689:38;2758:4;2746:10;2743:20;2740:47;;;-1:-1:-1;2781:4:76;2740:47;2836:2;2831:3;2827:12;2824:1;2820:20;2814:4;2810:31;2800:41;;2891:82;2909:2;2902:5;2899:13;2891:82;;;2954:17;;;2935:1;2924:13;2891:82;;;2895:3;;;2535:448;2444:545;;;:::o;3165:1352::-;3285:10;;-1:-1:-1;;;;;3307:30:76;;3304:56;;;3340:18;;:::i;:::-;3369:97;3459:6;3419:38;3451:4;3445:11;3419:38;:::i;:::-;3413:4;3369:97;:::i;:::-;3521:4;;3585:2;3574:14;;3602:1;3597:663;;;;4304:1;4321:6;4318:89;;;-1:-1:-1;4373:19:76;;;4367:26;4318:89;-1:-1:-1;;3122:1:76;3118:11;;;3114:24;3110:29;3100:40;3146:1;3142:11;;;3097:57;4420:81;;3567:944;;3597:663;2391:1;2384:14;;;2428:4;2415:18;;-1:-1:-1;;3633:20:76;;;3751:236;3765:7;3762:1;3759:14;3751:236;;;3854:19;;;3848:26;3833:42;;3946:27;;;;3914:1;3902:14;;;;3781:19;;3751:236;;;3755:3;4015:6;4006:7;4003:19;4000:201;;;4076:19;;;4070:26;-1:-1:-1;;4159:1:76;4155:14;;;4171:3;4151:24;4147:37;4143:42;4128:58;4113:74;;4000:201;-1:-1:-1;;;;;4247:1:76;4231:14;;;4227:22;4214:36;;-1:-1:-1;3165:1352:76:o;:::-;411:482:41;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033","sourceMap":"411:482:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1560:300:7;;;;;;;;;;-1:-1:-1;1560:300:7;;;;;:::i;:::-;;:::i;:::-;;;565:14:76;;558:22;540:41;;528:2;513:18;1560:300:7;;;;;;;;2364:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3496:154::-;;;;;;;;;;-1:-1:-1;3496:154:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:76;;;1679:51;;1667:2;1652:18;3496:154:7;1533:203:76;3322:113:7;;;;;;;;;;-1:-1:-1;3322:113:7;;;;;:::i;:::-;;:::i;:::-;;4142:578;;;;;;;;;;-1:-1:-1;4142:578:7;;;;;:::i;:::-;;:::i;629:121:41:-;;;;;;:::i;:::-;;:::i;4786:132:7:-;;;;;;;;;;-1:-1:-1;4786:132:7;;;;;:::i;:::-;;:::i;798:93:41:-;;;;;;;;;;-1:-1:-1;798:93:41;;;;;:::i;:::-;;:::i;1726:84:14:-;;;;;;;;;;-1:-1:-1;1773:4:14;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2184:118:7;;;;;;;;;;-1:-1:-1;2184:118:7;;;;;:::i;:::-;;:::i;1919:208::-;;;;;;;;;;-1:-1:-1;1919:208:7;;;;;:::i;:::-;;:::i;:::-;;;2848:25:76;;;2836:2;2821:18;1919:208:7;2702:177:76;2293:101:2;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:2;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;2517:93:7;;;;;;;;;;;;;:::i;3717:144::-;;;;;;;;;;-1:-1:-1;3717:144:7;;;;;:::i;:::-;;:::i;4984:233::-;;;;;;;;;;-1:-1:-1;4984:233:7;;;;;:::i;:::-;;:::i;2676:255::-;;;;;;;;;;-1:-1:-1;2676:255:7;;;;;:::i;:::-;;:::i;3927:153::-;;;;;;;;;;-1:-1:-1;3927:153:7;;;;;:::i;:::-;;:::i;2543:215:2:-;;;;;;;;;;-1:-1:-1;2543:215:2;;;;;:::i;:::-;;:::i;1560:300:7:-;1662:4;-1:-1:-1;;;;;;1697:40:7;;-1:-1:-1;;;1697:40:7;;:104;;-1:-1:-1;;;;;;;1753:48:7;;-1:-1:-1;;;1753:48:7;1697:104;:156;;;-1:-1:-1;;;;;;;;;;862:40:17;;;1817:36:7;1678:175;1560:300;-1:-1:-1;;1560:300:7:o;2364:89::-;2409:13;2441:5;2434:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:89;:::o;3496:154::-;3563:7;3582:22;3596:7;3582:13;:22::i;:::-;-1:-1:-1;6033:7:7;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6059:24:7;3622:21;5963:127;3322:113;3393:35;3402:2;3406:7;735:10:12;3393:8:7;:35::i;:::-;3322:113;;:::o;4142:578::-;-1:-1:-1;;;;;4236:16:7;;4232:87;;4275:33;;-1:-1:-1;;;4275:33:7;;4305:1;4275:33;;;1679:51:76;1652:18;;4275:33:7;;;;;;;;4232:87;4537:21;4561:34;4569:2;4573:7;735:10:12;4561:7:7;:34::i;:::-;4537:58;;4626:4;-1:-1:-1;;;;;4609:21:7;:13;-1:-1:-1;;;;;4609:21:7;;4605:109;;4653:50;;-1:-1:-1;;;4653:50:7;;-1:-1:-1;;;;;5419:15:76;;;4653:50:7;;;5401:34:76;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4653:50:7;5161:375:76;4605:109:7;4222:498;4142:578;;;:::o;629:121:41:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;721:22:41::2;731:2;735:7;721:9;:22::i;4786:132:7:-:0;4872:39;4889:4;4895:2;4899:7;4872:39;;;;;;;;;;;;:16;:39::i;:::-;4786:132;;;:::o;798:93:41:-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;870:14:41::2;876:7;870:5;:14::i;:::-;798:93:::0;:::o;2184:118:7:-;2247:7;2273:22;2287:7;2273:13;:22::i;1919:208::-;1982:7;-1:-1:-1;;;;;2005:19:7;;2001:87;;2047:30;;-1:-1:-1;;;2047:30:7;;2074:1;2047:30;;;1679:51:76;1652:18;;2047:30:7;1533:203:76;2001:87:7;-1:-1:-1;;;;;;2104:16:7;;;;;:9;:16;;;;;;;1919:208::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2517:93:7:-;2564:13;2596:7;2589:14;;;;;:::i;3717:144::-;3802:52;735:10:12;3835:8:7;3845;3802:18;:52::i;4984:233::-;5097:31;5110:4;5116:2;5120:7;5097:12;:31::i;:::-;5138:72;735:10:12;5186:4:7;5192:2;5196:7;5205:4;5138:33;:72::i;2676:255::-;2740:13;2765:22;2779:7;2765:13;:22::i;:::-;;2798:21;2822:10;3249:9;;;;;;;;;-1:-1:-1;3249:9:7;;;3173:92;2822:10;2798:34;;2873:1;2855:7;2849:21;:25;:75;;;;;;;;;;;;;;;;;2891:7;2900:18;:7;:16;:18::i;:::-;2877:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2849:75;2842:82;2676:255;-1:-1:-1;;;2676:255:7:o;3927:153::-;-1:-1:-1;;;;;4038:25:7;;;4015:4;4038:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3927:153::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1679:51:76::0;1652:18;;2672:31:2::1;1533:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;16212:241:7:-:0;16275:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:7;;16337:88;;16383:31;;-1:-1:-1;;;16383:31:7;;;;;2848:25:76;;;2821:18;;16383:31:7;2702:177:76;14492:120:7;14572:33;14581:2;14585:7;14594:4;14600;14572:8;:33::i;8861:795::-;8947:7;5824:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5824:16:7;;;;9058:18;;;9054:86;;9092:37;9109:4;9115;9121:7;9092:16;:37::i;:::-;-1:-1:-1;;;;;9184:18:7;;;9180:256;;9300:48;9317:1;9321:7;9338:1;9342:5;9300:8;:48::i;:::-;-1:-1:-1;;;;;9391:15:7;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9391:20:7;;;9180:256;-1:-1:-1;;;;;9450:16:7;;;9446:107;;-1:-1:-1;;;;;9510:13:7;;;;;;:9;:13;;;;;:18;;9527:1;9510:18;;;9446:107;9563:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9563:21:7;-1:-1:-1;;;;;9563:21:7;;;;;;;;;9600:27;;9563:16;;9600:27;;;;;;;9645:4;8861:795;-1:-1:-1;;;;8861:795:7:o;1796:162:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1679:51:76;1652:18;;1901:40:2;1533:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;10656:100:7;10723:26;10733:2;10737:7;10723:26;;;;;;;;;;;;:9;:26::i;11510:227::-;11561:21;11585:40;11601:1;11605:7;11622:1;11585:7;:40::i;:::-;11561:64;-1:-1:-1;;;;;;11639:27:7;;11635:96;;11689:31;;-1:-1:-1;;;11689:31:7;;;;;2848:25:76;;;2821:18;;11689:31:7;2702:177:76;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15665:312:7:-;-1:-1:-1;;;;;15772:22:7;;15768:91;;15817:31;;-1:-1:-1;;;15817:31:7;;-1:-1:-1;;;;;1697:32:76;;15817:31:7;;;1679:51:76;1652:18;;15817:31:7;1533:203:76;15768:91:7;-1:-1:-1;;;;;15868:25:7;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15868:46:7;;;;;;;;;;15929:41;;540::76;;;15929::7;;513:18:76;15929:41:7;;;;;;;15665:312;;;:::o;993:924:11:-;-1:-1:-1;;;;;1173:14:11;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:11;;-1:-1:-1;;;;;1211:36:11;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:11;;;;;;;;-1:-1:-1;;1211:67:11;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:11;;-1:-1:-1;;;;;1697:32:76;;1672:39:11;;;1679:51:76;1652:18;;1672:39:11;1533:203:76;1564:323:11;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:11;;-1:-1:-1;;;1325:51:11;1321:182;;1445:39;;-1:-1:-1;;;1445:39:11;;-1:-1:-1;;;;;1697:32:76;;1445:39:11;;;1679:51:76;1652:18;;1445:39:11;1533:203:76;1321:182:11;1279:238;1207:694;993:924;;;;;:::o;1308:632:16:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;1488:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:16;-1:-1:-1;1465:41:16;-1:-1:-1;1595:28:16;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:16;-1:-1:-1;;;1780:2:16;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:16;1650:247;1861:21;-1:-1:-1;1917:6:16;1308:632;-1:-1:-1;;;1308:632:16:o;14794:662:7:-;14954:9;:31;;;-1:-1:-1;;;;;;14967:18:7;;;;14954:31;14950:460;;;15001:13;15017:22;15031:7;15017:13;:22::i;:::-;15001:38;-1:-1:-1;;;;;;15167:18:7;;;;;;:35;;;15198:4;-1:-1:-1;;;;;15189:13:7;:5;-1:-1:-1;;;;;15189:13:7;;;15167:35;:69;;;;;15207:29;15224:5;15231:4;15207:16;:29::i;:::-;15206:30;15167:69;15163:142;;;15263:27;;-1:-1:-1;;;15263:27:7;;-1:-1:-1;;;;;1697:32:76;;15263:27:7;;;1679:51:76;1652:18;;15263:27:7;1533:203:76;15163:142:7;15323:9;15319:81;;;15377:7;15373:2;-1:-1:-1;;;;;15357:28:7;15366:5;-1:-1:-1;;;;;15357:28:7;;;;;;;;;;;15319:81;14987:423;14950:460;-1:-1:-1;;15420:24:7;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15420:29:7;-1:-1:-1;;;;;15420:29:7;;;;;;;;;;14794:662::o;7105:368::-;7217:38;7231:5;7238:7;7247;7217:13;:38::i;:::-;7212:255;;-1:-1:-1;;;;;7275:19:7;;7271:186;;7321:31;;-1:-1:-1;;;7321:31:7;;;;;2848:25:76;;;2821:18;;7321:31:7;2702:177:76;7271:186:7;7398:44;;-1:-1:-1;;;7398:44:7;;-1:-1:-1;;;;;7114:32:76;;7398:44:7;;;7096:51:76;7163:18;;;7156:34;;;7069:18;;7398:44:7;6922:274:76;10977:207:7;11071:18;11077:2;11081:7;11071:5;:18::i;:::-;11099:78;735:10:12;11155:1:7;11159:2;11163:7;11172:4;11099:33;:78::i;29154:916:19:-;29207:7;;-1:-1:-1;;;29282:17:19;;29278:103;;-1:-1:-1;;;29319:17:19;;;-1:-1:-1;29364:2:19;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:19;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:19;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:19;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:19;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:19;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:19:o;6401:272:7:-;6504:4;-1:-1:-1;;;;;6539:21:7;;;;;;:127;;;6586:7;-1:-1:-1;;;;;6577:16:7;:5;-1:-1:-1;;;;;6577:16:7;;:52;;;;6597:32;6614:5;6621:7;6597:16;:32::i;:::-;6577:88;;;-1:-1:-1;6033:7:7;6059:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6633:32:7;;;6059:24;;6633:32;6577:88;6520:146;6401:272;-1:-1:-1;;;;6401:272:7:o;9978:327::-;-1:-1:-1;;;;;10045:16:7;;10041:87;;10084:33;;-1:-1:-1;;;10084:33:7;;10114:1;10084:33;;;1679:51:76;1652:18;;10084:33:7;1533:203:76;10041:87:7;10137:21;10161:32;10169:2;10173:7;10190:1;10161:7;:32::i;:::-;10137:56;-1:-1:-1;;;;;;10207:27:7;;;10203:96;;10257:31;;-1:-1:-1;;;10257:31:7;;10285:1;10257:31;;;1679:51:76;1652:18;;10257:31:7;1533:203:76;14:131;-1:-1:-1;;;;;;88:32:76;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:76;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:76;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:76:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:76;;1348:180;-1:-1:-1;1348:180:76:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:76;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:76:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:76;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:496::-;5720:3;5758:6;5752:13;5774:66;5833:6;5828:3;5821:4;5813:6;5809:17;5774:66;:::i;:::-;5903:13;;5862:16;;;;5925:70;5903:13;5862:16;5972:4;5960:17;;5925:70;:::i;:::-;6011:20;;5541:496;-1:-1:-1;;;;5541:496:76:o;6042:489::-;-1:-1:-1;;;;;6311:15:76;;;6293:34;;6363:15;;6358:2;6343:18;;6336:43;6410:2;6395:18;;6388:34;;;6458:3;6453:2;6438:18;;6431:31;;;6236:4;;6479:46;;6505:19;;6497:6;6479:46;:::i;:::-;6471:54;6042:489;-1:-1:-1;;;;;;6042:489:76:o;6536:249::-;6605:6;6658:2;6646:9;6637:7;6633:23;6629:32;6626:52;;;6674:1;6671;6664:12;6626:52;6706:9;6700:16;6725:30;6749:5;6725:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","paused()":"5c975abb","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"burn token id\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"mint(address,uint256)\":{\"details\":\"mint token id\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine NFT Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRE721.sol\":\"OGRE721\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/OGRE721.sol\":{\"keccak256\":\"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee\",\"dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(uint256)":{"details":"burn token id"},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"mint(address,uint256)":{"details":"mint token id"},"name()":{"details":"See {IERC721Metadata-name}."},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRE721.sol":"OGRE721"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/OGRE721.sol":{"keccak256":"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522","urls":["bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee","dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t"],"license":"UNLICENSED"}},"version":1},"id":41} \ No newline at end of file diff --git a/out/OGRE721Factory.sol/OGRE721Factory.json b/out/OGRE721Factory.sol/OGRE721Factory.json deleted file mode 100644 index 4e3a42a..0000000 --- a/out/OGRE721Factory.sol/OGRE721Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceOGRE721","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"factoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506118ac8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063ef64982614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b61158d806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033a264697066735822122060e1db9fbe830df4cc4a12f23a475b00f0f7a3f9387a154a158f16c3ca39fb6c64736f6c63430008140033","sourceMap":"173:387:56:-:0;;;236:16;;;;;;;;;;173:387;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063ef64982614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b6100666100613660046101c6565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f9061011c565b61009b93929190610287565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c891906102c4565b9091555050604080516001600160a01b0383168152306020820152338183015290517f5db1f34edd85623861e21337b01e1c2035c3383b68b101d961bc2337c580a9629181900360600190a1949350505050565b61158d806102ea83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261014c575f80fd5b813567ffffffffffffffff8082111561016757610167610129565b604051601f8301601f19908116603f0116810190828211818310171561018f5761018f610129565b816040528381528660208588010111156101a7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f606084860312156101d8575f80fd5b833567ffffffffffffffff808211156101ef575f80fd5b6101fb8783880161013d565b94506020860135915080821115610210575f80fd5b5061021d8682870161013d565b92505060408401356001600160a01b0381168114610239575f80fd5b809150509250925092565b5f81518084525f5b818110156102685760208185018101518683018201520161024c565b505f602082860101526020601f19601f83011685010191505092915050565b606081525f6102996060830186610244565b82810360208401526102ab8186610244565b91505060018060a01b0383166040830152949350505050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffd5b9291505056fe608060405234801562000010575f80fd5b506040516200158d3803806200158d8339810160408190526200003391620001a6565b8282826001600160a01b0381166200006457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006f8162000099565b5060016200007e8382620002b9565b5060026200008d8282620002b9565b50505050505062000381565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200010c575f80fd5b81516001600160401b0380821115620001295762000129620000e8565b604051601f8301601f19908116603f01168101908282118183101715620001545762000154620000e8565b8160405283815260209250868385880101111562000170575f80fd5b5f91505b8382101562000193578582018301518183018401529082019062000174565b5f93810190920192909252949350505050565b5f805f60608486031215620001b9575f80fd5b83516001600160401b0380821115620001d0575f80fd5b620001de87838801620000fc565b94506020860151915080821115620001f4575f80fd5b506200020386828701620000fc565b604086015190935090506001600160a01b038116811462000222575f80fd5b809150509250925092565b600181811c908216806200024257607f821691505b6020821081036200026157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002b4575f81815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d5620000e8565b620002ed81620002e684546200022d565b8462000267565b602080601f83116001811462000323575f84156200030b5750858301515b5f19600386901b1c1916600185901b178555620002b0565b5f85815260208120601f198616915b82811015620003535788860151825594840194600190910190840162000332565b50858210156200037157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6111fe806200038f5f395ff3fe608060405260043610610110575f3560e01c80636352211e1161009d578063a22cb46511610062578063a22cb465146102de578063b88d4fde146102fd578063c87b56dd1461031c578063e985e9c51461033b578063f2fde38b1461035a575f80fd5b80636352211e1461024e57806370a082311461026d578063715018a61461029a5780638da5cb5b146102ae57806395d89b41146102ca575f80fd5b806323b872dd116100e357806323b872dd146101c157806340c10f19146101e057806342842e0e146101f357806342966c68146102125780635c975abb14610231575f80fd5b806301ffc9a71461011457806306fdde0314610148578063081812fc14610169578063095ea7b3146101a0575b5f80fd5b34801561011f575f80fd5b5061013361012e366004610e92565b610379565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b5061015c6103ca565b60405161013f9190610efa565b348015610174575f80fd5b50610188610183366004610f0c565b61045a565b6040516001600160a01b03909116815260200161013f565b3480156101ab575f80fd5b506101bf6101ba366004610f3e565b610481565b005b3480156101cc575f80fd5b506101bf6101db366004610f66565b610490565b6101bf6101ee366004610f3e565b61051e565b3480156101fe575f80fd5b506101bf61020d366004610f66565b610538565b34801561021d575f80fd5b506101bf61022c366004610f0c565b610557565b34801561023c575f80fd5b505f54600160a01b900460ff16610133565b348015610259575f80fd5b50610188610268366004610f0c565b610573565b348015610278575f80fd5b5061028c610287366004610f9f565b61057d565b60405190815260200161013f565b3480156102a5575f80fd5b506101bf6105c2565b3480156102b9575f80fd5b505f546001600160a01b0316610188565b3480156102d5575f80fd5b5061015c6105d5565b3480156102e9575f80fd5b506101bf6102f8366004610fb8565b6105e4565b348015610308575f80fd5b506101bf610317366004611005565b6105ef565b348015610327575f80fd5b5061015c610336366004610f0c565b610607565b348015610346575f80fd5b506101336103553660046110da565b610678565b348015610365575f80fd5b506101bf610374366004610f9f565b6106a5565b5f6001600160e01b031982166380ac58cd60e01b14806103a957506001600160e01b03198216635b5e139f60e01b145b806103c457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600180546103d99061110b565b80601f01602080910402602001604051908101604052809291908181526020018280546104059061110b565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b5050505050905090565b5f610464826106df565b505f828152600560205260409020546001600160a01b03166103c4565b61048c828233610717565b5050565b6001600160a01b0382166104be57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6104ca838333610724565b9050836001600160a01b0316816001600160a01b031614610518576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016104b5565b50505050565b610526610816565b61052e610842565b61048c828261086c565b61055283838360405180602001604052805f8152506105ef565b505050565b61055f610816565b610567610842565b61057081610885565b50565b5f6103c4826106df565b5f6001600160a01b0382166105a7576040516322718ad960e21b81525f60048201526024016104b5565b506001600160a01b03165f9081526004602052604090205490565b6105ca610816565b6105d35f6108bd565b565b6060600280546103d99061110b565b61048c33838361090c565b6105fa848484610490565b61051833858585856109aa565b6060610612826106df565b505f61062860408051602081019091525f815290565b90505f8151116106465760405180602001604052805f815250610671565b8061065084610ad2565b604051602001610661929190611143565b6040516020818303038152906040525b9392505050565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6106ad610816565b6001600160a01b0381166106d657604051631e4fbdf760e01b81525f60048201526024016104b5565b610570816108bd565b5f818152600360205260408120546001600160a01b0316806103c457604051637e27328960e01b8152600481018490526024016104b5565b6105528383836001610b62565b5f828152600360205260408120546001600160a01b039081169083161561075057610750818486610c66565b6001600160a01b0381161561078a5761076b5f855f80610b62565b6001600160a01b0381165f90815260046020526040902080545f190190555b6001600160a01b038516156107b8576001600160a01b0385165f908152600460205260409020805460010190555b5f8481526003602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b5f546001600160a01b031633146105d35760405163118cdaa760e01b81523360048201526024016104b5565b5f54600160a01b900460ff16156105d35760405163d93c066560e01b815260040160405180910390fd5b61048c828260405180602001604052805f815250610cca565b5f6108915f835f610724565b90506001600160a01b03811661048c57604051637e27328960e01b8152600481018390526024016104b5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661093e57604051630b61174360e31b81526001600160a01b03831660048201526024016104b5565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610acb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906109ec908890889087908790600401611171565b6020604051808303815f875af1925050508015610a26575060408051601f3d908101601f19168201909252610a23918101906111ad565b60015b610a8d573d808015610a53576040519150601f19603f3d011682016040523d82523d5f602084013e610a58565b606091505b5080515f03610a8557604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610ac957604051633250574960e11b81526001600160a01b03851660048201526024016104b5565b505b5050505050565b60605f610ade83610ce1565b60010190505f8167ffffffffffffffff811115610afd57610afd610ff1565b6040519080825280601f01601f191660200182016040528015610b27576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3157509392505050565b8080610b7657506001600160a01b03821615155b15610c37575f610b85846106df565b90506001600160a01b03831615801590610bb15750826001600160a01b0316816001600160a01b031614155b8015610bc45750610bc28184610678565b155b15610bed5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016104b5565b8115610c355783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260056020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610c71838383610db8565b610552576001600160a01b038316610c9f57604051637e27328960e01b8152600481018290526024016104b5565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016104b5565b610cd48383610e1c565b610552335f8585856109aa565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610d1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610d4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d6957662386f26fc10000830492506010015b6305f5e1008310610d81576305f5e100830492506008015b6127108310610d9557612710830492506004015b60648310610da7576064830492506002015b600a83106103c45760010192915050565b5f6001600160a01b03831615801590610e145750826001600160a01b0316846001600160a01b03161480610df15750610df18484610678565b80610e1457505f828152600560205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e4557604051633250574960e11b81525f60048201526024016104b5565b5f610e5183835f610724565b90506001600160a01b03811615610552576040516339e3563760e11b81525f60048201526024016104b5565b6001600160e01b031981168114610570575f80fd5b5f60208284031215610ea2575f80fd5b813561067181610e7d565b5f5b83811015610ec7578181015183820152602001610eaf565b50505f910152565b5f8151808452610ee6816020860160208601610ead565b601f01601f19169290920160200192915050565b602081525f6106716020830184610ecf565b5f60208284031215610f1c575f80fd5b5035919050565b80356001600160a01b0381168114610f39575f80fd5b919050565b5f8060408385031215610f4f575f80fd5b610f5883610f23565b946020939093013593505050565b5f805f60608486031215610f78575f80fd5b610f8184610f23565b9250610f8f60208501610f23565b9150604084013590509250925092565b5f60208284031215610faf575f80fd5b61067182610f23565b5f8060408385031215610fc9575f80fd5b610fd283610f23565b915060208301358015158114610fe6575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f8060808587031215611018575f80fd5b61102185610f23565b935061102f60208601610f23565b925060408501359150606085013567ffffffffffffffff80821115611052575f80fd5b818701915087601f830112611065575f80fd5b81358181111561107757611077610ff1565b604051601f8201601f19908116603f0116810190838211818310171561109f5761109f610ff1565b816040528281528a60208487010111156110b7575f80fd5b826020860160208301375f60208483010152809550505050505092959194509250565b5f80604083850312156110eb575f80fd5b6110f483610f23565b915061110260208401610f23565b90509250929050565b600181811c9082168061111f57607f821691505b60208210810361113d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8351611154818460208801610ead565b835190830190611168818360208801610ead565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111a390830184610ecf565b9695505050505050565b5f602082840312156111bd575f80fd5b815161067181610e7d56fea264697066735822122067761450734d3c4aab252a0030e1be457a1510b8c98a0051a0035b06a9075a5d64736f6c63430008140033a264697066735822122060e1db9fbe830df4cc4a12f23a475b00f0f7a3f9387a154a158f16c3ca39fb6c64736f6c63430008140033","sourceMap":"173:387:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:51;;;;;;;;;160:25:76;;;148:2;133:18;151:30:51;;;;;;;;258:300:56;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1938:32:76;;;1920:51;;1908:2;1893:18;258:300:56;1774:203:76;258:300:56;355:7;374:11;400:4;406:6;414:5;388:32;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;374:46;;449:1;430:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;465:57:56;;;-1:-1:-1;;;;;3380:15:76;;3362:34;;504:4:56;3427:2:76;3412:18;;3405:43;511:10:56;3464:18:76;;;3457:43;465:57:56;;;;;;;3312:2:76;465:57:56;;;547:3;258:300;-1:-1:-1;;;;258:300:56:o;-1:-1:-1:-;;;;;;;;:::o;196:127:76:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:76;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:717::-;1149:6;1157;1165;1218:2;1206:9;1197:7;1193:23;1189:32;1186:52;;;1234:1;1231;1224:12;1186:52;1274:9;1261:23;1303:18;1344:2;1336:6;1333:14;1330:34;;;1360:1;1357;1350:12;1330:34;1383:50;1425:7;1416:6;1405:9;1401:22;1383:50;:::i;:::-;1373:60;;1486:2;1475:9;1471:18;1458:32;1442:48;;1515:2;1505:8;1502:16;1499:36;;;1531:1;1528;1521:12;1499:36;;1554:52;1598:7;1587:8;1576:9;1572:24;1554:52;:::i;:::-;1544:62;-1:-1:-1;;1656:2:76;1641:18;;1628:32;-1:-1:-1;;;;;1689:31:76;;1679:42;;1669:70;;1735:1;1732;1725:12;1669:70;1758:5;1748:15;;;1052:717;;;;;:::o;1982:423::-;2024:3;2062:5;2056:12;2089:6;2084:3;2077:19;2114:1;2124:162;2138:6;2135:1;2132:13;2124:162;;;2200:4;2256:13;;;2252:22;;2246:29;2228:11;;;2224:20;;2217:59;2153:12;2124:162;;;2128:3;2331:1;2324:4;2315:6;2310:3;2306:16;2302:27;2295:38;2394:4;2387:2;2383:7;2378:2;2370:6;2366:15;2362:29;2357:3;2353:39;2349:50;2342:57;;;1982:423;;;;:::o;2410:480::-;2635:2;2624:9;2617:21;2598:4;2661:45;2702:2;2691:9;2687:18;2679:6;2661:45;:::i;:::-;2754:9;2746:6;2742:22;2737:2;2726:9;2722:18;2715:50;2782:33;2808:6;2800;2782:33;:::i;:::-;2774:41;;;2880:1;2876;2871:3;2867:11;2863:19;2855:6;2851:32;2846:2;2835:9;2831:18;2824:60;2410:480;;;;;;:::o;2895:222::-;2960:9;;;2981:10;;;2978:133;;;3033:10;3028:3;3024:20;3021:1;3014:31;3068:4;3065:1;3058:15;3096:4;3093:1;3086:15;2978:133;2895:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRE721(string,string,address)":"ef649826","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGRE721\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address,address)\":{\"details\":\"logs a successful contract production from factory\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"factoryAddress\":\"address of factory that produced contract\",\"producer\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRE721Factory.sol\":\"OGRE721Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09\",\"dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/OGRE721.sol\":{\"keccak256\":\"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee\",\"dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589\",\"dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k\"]},\"src/factories/OGRE721Factory.sol\":{\"keccak256\":\"0x2852605e24312fb256e54ebcaf54a3512700c9e266c9a4e0ccb6fc52169fc637\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6fe4c690ed90cf482a0124a0960fe1a36f742b5fc45df2c126bf33e78ec97a8b\",\"dweb:/ipfs/QmTX1VuHv1gmjNpDckyGWRUmegpqXen3NNgfGapYUzCRD2\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"factoryAddress","type":"address","indexed":false},{"internalType":"address","name":"producer","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRE721","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRE721Factory.sol":"OGRE721Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x39ed367e54765186281efcfe83e47cf0ad62cc879f10e191360712507125f29a","urls":["bzz-raw://2c5ae6d85bd48cca8d6d2fcec8c63efd86f56f8a5832577a47e403ce0e65cb09","dweb:/ipfs/QmUtcS8AbRSWhuc61puYet58os8FvSqm329ChoW8wwZXZk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac","urls":["bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24","dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/OGRE721.sol":{"keccak256":"0x542453f40c060ac0cc88fb89c661fd03f05ff2c73edfce6da70ed7d4d0245522","urls":["bzz-raw://e3163c6bedf5aa409b0a5d302b2ac5abb6d3a32a93c240d6f0f726c0e84a10ee","dweb:/ipfs/QmUPZPh25wr7L3JkrC59g8bNZkH3eeCg4pyNEAGq4uUg4t"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x48c2ac905f7eab675847321dda6ede74e69386aa0e9f2ded849fee718f230bb6","urls":["bzz-raw://f7dfbeaffa95d87b95552c3d0580c1e1d06ec10ff0068e69918ae9bd8f0f2589","dweb:/ipfs/QmRcTUZHJ46oqZz1x78zjnd3NsmaSA8bf5xwTxVevHdT2k"],"license":"UNLICENSED"},"src/factories/OGRE721Factory.sol":{"keccak256":"0x2852605e24312fb256e54ebcaf54a3512700c9e266c9a4e0ccb6fc52169fc637","urls":["bzz-raw://6fe4c690ed90cf482a0124a0960fe1a36f742b5fc45df2c126bf33e78ec97a8b","dweb:/ipfs/QmTX1VuHv1gmjNpDckyGWRUmegpqXen3NNgfGapYUzCRD2"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/OGREBridge.sol/OGREBridge.json b/out/OGREBridge.sol/OGREBridge.json deleted file mode 100644 index 207440f..0000000 --- a/out/OGREBridge.sol/OGREBridge.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approvedChains","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"blockedAcounts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"depositItem","inputs":[{"name":"nftAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"depositor","type":"address","internalType":"address"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleApprovedChain","inputs":[{"name":"chainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleApprovedContract","inputs":[{"name":"nftAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toggleBlockedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawItem","inputs":[{"name":"nftAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountBlock","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"blocked","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ChainApproval","inputs":[{"name":"chainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ContractApproval","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ItemDeposited","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ItemWithdrawn","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161077338038061077383398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b61067e806100f55f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063715018a61161006e578063715018a61461015a578063820232b4146101625780638da5cb5b14610175578063990db7a51461018f578063d8faf85f146101a2578063f2fde38b146101c4575f80fd5b80630857b6f3146100b557806322a6cc56146100ca57806326749ad7146100dd5780633d755508146101145780634aceb65e146101275780635c975abb14610149575b5f80fd5b6100c86100c3366004610597565b6101d7565b005b6100c86100d83660046105b7565b610248565b6100ff6100eb366004610597565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100c86101223660046105f8565b61035a565b6100ff610135366004610631565b60016020525f908152604090205460ff1681565b5f54600160a01b900460ff166100ff565b6100c86103b9565b6100c8610170366004610631565b6103cc565b5f546040516001600160a01b03909116815260200161010b565b6100c861019d366004610597565b610430565b6100ff6101b0366004610597565b60036020525f908152604090205460ff1681565b6100c86101d2366004610597565b61049a565b6101df6104d7565b6001600160a01b0381165f81815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527fca94056dee32c185a00e037f7e05dac3321b40a1723eedd953c8a9377e54366b91015b60405180910390a150565b610250610503565b6001600160a01b0384166102ab5760405162461bcd60e51b815260206004820152601960248201527f6e6674416464726573732063616e6e6f74206265207a65726f0000000000000060448201526064015b60405180910390fd5b336001600160a01b038316146103035760405162461bcd60e51b815260206004820152601860248201527f6465706f7369746f72206d7573742062652063616c6c6572000000000000000060448201526064016102a2565b604080516001600160a01b038681168252602082018690528416818301526060810183905290517ff48aeb22d64b26448551eb44f635bb218b035f9b74f0c901e1fd0956ad6a668c9181900360800190a150505050565b6103626104d7565b61036a610503565b604080516001600160a01b0385811682526020820185905283168183015290517f2e4cfbe03dba815a12e46f2003d5518d42f196ec7ba8477579c217c6105bbdd59181900360600190a1505050565b6103c16104d7565b6103ca5f61052d565b565b6103d46104d7565b5f81815260016020908152604091829020805460ff8082161560ff199092168217909255835185815291161515918101919091527f141594b58fd779f96f9adde8f6a6ae8566e9f3eb7df5e4bf72024053c2db5989910161023d565b6104386104d7565b6001600160a01b0381165f81815260036020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527ffecb1aa833d13c983ee041271f6ec2edc8bcb0407ec85340adf3ad1f69c2dbc3910161023d565b6104a26104d7565b6001600160a01b0381166104cb57604051631e4fbdf760e01b81525f60048201526024016102a2565b6104d48161052d565b50565b5f546001600160a01b031633146103ca5760405163118cdaa760e01b81523360048201526024016102a2565b5f54600160a01b900460ff16156103ca5760405163d93c066560e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610592575f80fd5b919050565b5f602082840312156105a7575f80fd5b6105b08261057c565b9392505050565b5f805f80608085870312156105ca575f80fd5b6105d38561057c565b9350602085013592506105e86040860161057c565b9396929550929360600135925050565b5f805f6060848603121561060a575f80fd5b6106138461057c565b9250602084013591506106286040850161057c565b90509250925092565b5f60208284031215610641575f80fd5b503591905056fea264697066735822122024e5462ada77b6f927b54a2c0d23bef93fac80c1876017501deff81367af474064736f6c63430008140033","sourceMap":"301:2503:42:-:0;;;879:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;455:51:76;428:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;879:46:42;301:2503;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:203::-;301:2503:42;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c8063715018a61161006e578063715018a61461015a578063820232b4146101625780638da5cb5b14610175578063990db7a51461018f578063d8faf85f146101a2578063f2fde38b146101c4575f80fd5b80630857b6f3146100b557806322a6cc56146100ca57806326749ad7146100dd5780633d755508146101145780634aceb65e146101275780635c975abb14610149575b5f80fd5b6100c86100c3366004610597565b6101d7565b005b6100c86100d83660046105b7565b610248565b6100ff6100eb366004610597565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100c86101223660046105f8565b61035a565b6100ff610135366004610631565b60016020525f908152604090205460ff1681565b5f54600160a01b900460ff166100ff565b6100c86103b9565b6100c8610170366004610631565b6103cc565b5f546040516001600160a01b03909116815260200161010b565b6100c861019d366004610597565b610430565b6100ff6101b0366004610597565b60036020525f908152604090205460ff1681565b6100c86101d2366004610597565b61049a565b6101df6104d7565b6001600160a01b0381165f81815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527fca94056dee32c185a00e037f7e05dac3321b40a1723eedd953c8a9377e54366b91015b60405180910390a150565b610250610503565b6001600160a01b0384166102ab5760405162461bcd60e51b815260206004820152601960248201527f6e6674416464726573732063616e6e6f74206265207a65726f0000000000000060448201526064015b60405180910390fd5b336001600160a01b038316146103035760405162461bcd60e51b815260206004820152601860248201527f6465706f7369746f72206d7573742062652063616c6c6572000000000000000060448201526064016102a2565b604080516001600160a01b038681168252602082018690528416818301526060810183905290517ff48aeb22d64b26448551eb44f635bb218b035f9b74f0c901e1fd0956ad6a668c9181900360800190a150505050565b6103626104d7565b61036a610503565b604080516001600160a01b0385811682526020820185905283168183015290517f2e4cfbe03dba815a12e46f2003d5518d42f196ec7ba8477579c217c6105bbdd59181900360600190a1505050565b6103c16104d7565b6103ca5f61052d565b565b6103d46104d7565b5f81815260016020908152604091829020805460ff8082161560ff199092168217909255835185815291161515918101919091527f141594b58fd779f96f9adde8f6a6ae8566e9f3eb7df5e4bf72024053c2db5989910161023d565b6104386104d7565b6001600160a01b0381165f81815260036020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527ffecb1aa833d13c983ee041271f6ec2edc8bcb0407ec85340adf3ad1f69c2dbc3910161023d565b6104a26104d7565b6001600160a01b0381166104cb57604051631e4fbdf760e01b81525f60048201526024016102a2565b6104d48161052d565b50565b5f546001600160a01b031633146103ca5760405163118cdaa760e01b81523360048201526024016102a2565b5f54600160a01b900460ff16156103ca5760405163d93c066560e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610592575f80fd5b919050565b5f602082840312156105a7575f80fd5b6105b08261057c565b9392505050565b5f805f80608085870312156105ca575f80fd5b6105d38561057c565b9350602085013592506105e86040860161057c565b9396929550929360600135925050565b5f805f6060848603121561060a575f80fd5b6106138461057c565b9250602084013591506106286040850161057c565b90509250925092565b5f60208284031215610641575f80fd5b503591905056fea264697066735822122024e5462ada77b6f927b54a2c0d23bef93fac80c1876017501deff81367af474064736f6c63430008140033","sourceMap":"301:2503:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:222;;;;;;:::i;:::-;;:::i;:::-;;1555:399;;;;;;:::i;:::-;;:::i;401:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;950:14:76;;943:22;925:41;;913:2;898:18;401:49:42;;;;;;;;1960:244;;;;;;:::i;:::-;;:::i;349:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1726:84:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1726:84;;2293:101:2;;;:::i;931:192:42:-;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:2;;;1641:51:76;;1629:2;1614:18;1638:85:2;1495:203:76;1357:192:42;;;;;;:::i;:::-;;:::i;456:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2543:215:2;;;;;;:::i;:::-;;:::i;1129:222:42:-;1531:13:2;:11;:13::i;:::-;-1:-1:-1;;;;;1241:29:42;::::1;;::::0;;;:17:::1;:29;::::0;;;;;;;;;;::::1;::::0;;::::1;1240:30;-1:-1:-1::0;;1208:62:42;;::::1;::::0;::::1;::::0;;;1285:59;;1871:51:76;;;1314:29:42;1965:14:76;1958:22;1938:18;;;1931:50;1285:59:42::1;::::0;1844:18:76;1285:59:42::1;;;;;;;;1129:222:::0;:::o;1555:399::-;1350:19:14;:17;:19::i;:::-;-1:-1:-1;;;;;1699:26:42;::::1;1691:64;;;::::0;-1:-1:-1;;;1691:64:42;;2194:2:76;1691:64:42::1;::::0;::::1;2176:21:76::0;2233:2;2213:18;;;2206:30;2272:27;2252:18;;;2245:55;2317:18;;1691:64:42::1;;;;;;;;;1773:10;-1:-1:-1::0;;;;;1773:23:42;::::1;;1765:60;;;::::0;-1:-1:-1;;;1765:60:42;;2548:2:76;1765:60:42::1;::::0;::::1;2530:21:76::0;2587:2;2567:18;;;2560:30;2626:26;2606:18;;;2599:54;2670:18;;1765:60:42::1;2346:348:76::0;1765:60:42::1;1882:65;::::0;;-1:-1:-1;;;;;2986:15:76;;;2968:34;;3033:2;3018:18;;3011:34;;;3081:15;;3061:18;;;3054:43;3128:2;3113:18;;3106:34;;;1882:65:42;;::::1;::::0;;;;2917:3:76;1882:65:42;;::::1;1555:399:::0;;;;:::o;1960:244::-;1531:13:2;:11;:13::i;:::-;1350:19:14::1;:17;:19::i;:::-;2152:45:42::2;::::0;;-1:-1:-1;;;;;3409:15:76;;;3391:34;;3456:2;3441:18;;3434:34;;;3504:15;;3484:18;;;3477:43;2152:45:42;;::::2;::::0;;;;3341:2:76;2152:45:42;;::::2;1960:244:::0;;;:::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;931:192:42:-;1531:13:2;:11;:13::i;:::-;1031:23:42::1;::::0;;;:14:::1;:23;::::0;;;;;;;;;;::::1;::::0;;::::1;1030:24;-1:-1:-1::0;;1004:50:42;;::::1;::::0;::::1;::::0;;;1069:47;;3699:25:76;;;1092:23:42;;3767:14:76;3760:22;3740:18;;;3733:50;;;;1069:47:42::1;::::0;3672:18:76;1069:47:42::1;3531:258:76::0;1357:192:42;1531:13:2;:11;:13::i;:::-;-1:-1:-1;;;;;1458:23:42;::::1;;::::0;;;:14:::1;:23;::::0;;;;;;;;;;::::1;::::0;;::::1;1457:24;-1:-1:-1::0;;1431:50:42;;::::1;::::0;::::1;::::0;;;1496:46;;1871:51:76;;;1518:23:42;1965:14:76;1958:22;1938:18;;;1931:50;1496:46:42::1;::::0;1844:18:76;1496:46:42::1;1703:284:76::0;2543:215:2;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1641:51:76::0;1614:18;;2672:31:2::1;1495:203:76::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:12;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:12;1901:40:2;;;1641:51:76;1614:18;;1901:40:2;1495:203:76;1878:128:14;1773:4;1796:7;-1:-1:-1;;;1796:7:14;;;;1939:61;;;1974:15;;-1:-1:-1;;;1974:15:14;;;;;;;;;;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:76:o;383:397::-;469:6;477;485;493;546:3;534:9;525:7;521:23;517:33;514:53;;;563:1;560;553:12;514:53;586:29;605:9;586:29;:::i;:::-;576:39;;662:2;651:9;647:18;634:32;624:42;;685:38;719:2;708:9;704:18;685:38;:::i;:::-;383:397;;;;-1:-1:-1;675:48:76;;770:2;755:18;742:32;;-1:-1:-1;;383:397:76:o;977:328::-;1054:6;1062;1070;1123:2;1111:9;1102:7;1098:23;1094:32;1091:52;;;1139:1;1136;1129:12;1091:52;1162:29;1181:9;1162:29;:::i;:::-;1152:39;;1238:2;1227:9;1223:18;1210:32;1200:42;;1261:38;1295:2;1284:9;1280:18;1261:38;:::i;:::-;1251:48;;977:328;;;;;:::o;1310:180::-;1369:6;1422:2;1410:9;1401:7;1397:23;1393:32;1390:52;;;1438:1;1435;1428:12;1390:52;-1:-1:-1;1461:23:76;;1310:180;-1:-1:-1;1310:180:76:o","linkReferences":{}},"methodIdentifiers":{"approvedChains(uint256)":"4aceb65e","approvedContracts(address)":"26749ad7","blockedAcounts(address)":"d8faf85f","depositItem(address,uint256,address,uint256)":"22a6cc56","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","toggleApprovedChain(uint256)":"820232b4","toggleApprovedContract(address)":"0857b6f3","toggleBlockedAccount(address)":"990db7a5","transferOwnership(address)":"f2fde38b","withdrawItem(address,uint256,address)":"3d755508"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"blocked\",\"type\":\"bool\"}],\"name\":\"AccountBlock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ChainApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ContractApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"}],\"name\":\"ItemDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ItemWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedChains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"approvedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blockedAcounts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"}],\"name\":\"depositItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"toggleApprovedChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"}],\"name\":\"toggleApprovedContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"toggleBlockedAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"withdrawItem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREBridge.sol\":\"OGREBridge\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREBridge.sol\":{\"keccak256\":\"0xab74bd808fbdfdc99a1936206b78f4dca06d4cce9819cdeb308a9f142f36cc6a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://faed5c136f29672478148a75039e5d4a3ef0867b8a9d8adb3c432e87cf6eba8f\",\"dweb:/ipfs/QmNVW4wWjDVcDP5uzU7BjgL7rnbfhqw2PE5JghV58skRzW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"bool","name":"blocked","type":"bool","indexed":false}],"type":"event","name":"AccountBlock","anonymous":false},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256","indexed":false},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ChainApproval","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ContractApproval","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"depositor","type":"address","indexed":false},{"internalType":"uint256","name":"destinationChainId","type":"uint256","indexed":false}],"type":"event","name":"ItemDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false}],"type":"event","name":"ItemWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"approvedChains","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"approvedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"blockedAcounts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"depositor","type":"address"},{"internalType":"uint256","name":"destinationChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"depositItem"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"toggleApprovedChain"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"toggleApprovedContract"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"toggleBlockedAccount"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawItem"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREBridge.sol":"OGREBridge"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREBridge.sol":{"keccak256":"0xab74bd808fbdfdc99a1936206b78f4dca06d4cce9819cdeb308a9f142f36cc6a","urls":["bzz-raw://faed5c136f29672478148a75039e5d4a3ef0867b8a9d8adb3c432e87cf6eba8f","dweb:/ipfs/QmNVW4wWjDVcDP5uzU7BjgL7rnbfhqw2PE5JghV58skRzW"],"license":"UNLICENSED"}},"version":1},"id":42} \ No newline at end of file diff --git a/out/OGREDAO.sol/OGREDAO.json b/out/OGREDAO.sol/OGREDAO.json deleted file mode 100644 index ac332ab..0000000 --- a/out/OGREDAO.sol/OGREDAO.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoName_","type":"string","internalType":"string"},{"name":"daoMetadata_","type":"string","internalType":"string"},{"name":"nftAddress_","type":"address","internalType":"address"},{"name":"proposalFactoryAddress_","type":"address","internalType":"address"},{"name":"proposalCost_","type":"uint256","internalType":"uint256"},{"name":"admin_","type":"address","internalType":"address"},{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"daoMetadata","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"daoName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"draftProposal","inputs":[{"name":"proposalTitle","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"evaluateProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMemberStatus","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.MemberStatus"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inviteMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isProposal","inputs":[{"name":"proposal","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTokenOwner","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minVotePeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalCost","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalFactoryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorumThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOMetadata","inputs":[{"name":"newDAOMetadata","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDAOName","inputs":[{"name":"newDAOName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinVotePeriod","inputs":[{"name":"newMinVotePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorumThreshold","inputs":[{"name":"newQuorumThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportThreshold","inputs":[{"name":"newSupportThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DAOCreated","inputs":[{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposalFactoryAddress","type":"address","indexed":false,"internalType":"address"},{"name":"admin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberInvited","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"nftAddress","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"memberAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"},{"name":"proposal","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalEvaluated","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposal","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a","sourceMap":"799:12999:11:-:0;;;5276:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:15;:14;;;-1:-1:-1;;;;;5556:27:11;::::1;5548:74;;;::::0;-1:-1:-1;;;5548:74:11;;2323:2:30;5548:74:11::1;::::0;::::1;2305:21:30::0;2362:2;2342:18;;;2335:30;2401:34;2381:18;;;2374:62;-1:-1:-1;;;2452:18:30;;;2445:32;2494:19;;5548:74:11::1;;;;;;;;;-1:-1:-1::0;;;;;5640:22:11;::::1;5632:68;;;::::0;-1:-1:-1;;;5632:68:11;;2726:2:30;5632:68:11::1;::::0;::::1;2708:21:30::0;2765:2;2745:18;;;2738:30;2804:34;2784:18;;;2777:62;-1:-1:-1;;;2855:18:30;;;2848:31;2896:19;;5632:68:11::1;2524:397:30::0;5632:68:11::1;5711:7;:18;5721:8:::0;5711:7;:18:::1;:::i;:::-;-1:-1:-1::0;5739:11:11::1;:26;5753:12:::0;5739:11;:26:::1;:::i;:::-;-1:-1:-1::0;;;;;;5775:24:11;;::::1;;::::0;5809:48;::::1;;::::0;5867:12:::1;:28:::0;;;5906:39:::1;-1:-1:-1::0;;;;;;;;;;;5938:6:11;5906:10:::1;:39::i;:::-;-1:-1:-1::0;5955:40:11::1;-1:-1:-1::0;;;;;;;;;;;5988:6:11;5955:10:::1;:40::i;:::-;-1:-1:-1::0;6005:56:11::1;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;6005:13:11::1;:56::i;:::-;6077;::::0;;-1:-1:-1;;;;;5773:15:30;;;5755:34;;5825:15;;;5820:2;5805:18;;5798:43;5877:15;;5857:18;;;5850:43;6077:56:11;;::::1;::::0;;;;5705:2:30;6077:56:11;;::::1;5276:864:::0;;;;;;;799:12999;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:127:30:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:30;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:30;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:30:o;991:177::-;1070:13;;-1:-1:-1;;;;;1112:31:30;;1102:42;;1092:70;;1158:1;1155;1148:12;1092:70;991:177;;;:::o;1173:943::-;1317:6;1325;1333;1341;1349;1357;1365;1418:3;1406:9;1397:7;1393:23;1389:33;1386:53;;;1435:1;1432;1425:12;1386:53;1462:16;;-1:-1:-1;;;;;1527:14:30;;;1524:34;;;1554:1;1551;1544:12;1524:34;1577:61;1630:7;1621:6;1610:9;1606:22;1577:61;:::i;:::-;1567:71;;1684:2;1673:9;1669:18;1663:25;1647:41;;1713:2;1703:8;1700:16;1697:36;;;1729:1;1726;1719:12;1697:36;;1752:63;1807:7;1796:8;1785:9;1781:24;1752:63;:::i;:::-;1742:73;;;1834:49;1879:2;1868:9;1864:18;1834:49;:::i;:::-;1824:59;;1902:49;1947:2;1936:9;1932:18;1902:49;:::i;:::-;1892:59;;1991:3;1980:9;1976:19;1970:26;1960:36;;2015:50;2060:3;2049:9;2045:19;2015:50;:::i;:::-;2005:60;;2105:3;2094:9;2090:19;2084:26;2074:36;;1173:943;;;;;;;;;;:::o;2926:380::-;3005:1;3001:12;;;;3048;;;3069:61;;3123:4;3115:6;3111:17;3101:27;;3069:61;3176:2;3168:6;3165:14;3145:18;3142:38;3139:161;;3222:10;3217:3;3213:20;3210:1;3203:31;3257:4;3254:1;3247:15;3285:4;3282:1;3275:15;3139:161;;2926:380;;;:::o;3437:545::-;3539:2;3534:3;3531:11;3528:448;;;3575:1;3600:5;3596:2;3589:17;3645:4;3641:2;3631:19;3715:2;3703:10;3699:19;3696:1;3692:27;3686:4;3682:38;3751:4;3739:10;3736:20;3733:47;;;-1:-1:-1;3774:4:30;3733:47;3829:2;3824:3;3820:12;3817:1;3813:20;3807:4;3803:31;3793:41;;3884:82;3902:2;3895:5;3892:13;3884:82;;;3947:17;;;3928:1;3917:13;3884:82;;;3888:3;;;3528:448;3437:545;;;:::o;4158:1352::-;4278:10;;-1:-1:-1;;;;;4300:30:30;;4297:56;;;4333:18;;:::i;:::-;4362:97;4452:6;4412:38;4444:4;4438:11;4412:38;:::i;:::-;4406:4;4362:97;:::i;:::-;4514:4;;4578:2;4567:14;;4595:1;4590:663;;;;5297:1;5314:6;5311:89;;;-1:-1:-1;5366:19:30;;;5360:26;5311:89;-1:-1:-1;;4115:1:30;4111:11;;;4107:24;4103:29;4093:40;4139:1;4135:11;;;4090:57;5413:81;;4560:944;;4590:663;3384:1;3377:14;;;3421:4;3408:18;;-1:-1:-1;;4626:20:30;;;4744:236;4758:7;4755:1;4752:14;4744:236;;;4847:19;;;4841:26;4826:42;;4939:27;;;;4907:1;4895:14;;;;4774:19;;4744:236;;;4748:3;5008:6;4999:7;4996:19;4993:201;;;5069:19;;;5063:26;-1:-1:-1;;5152:1:30;5148:14;;;5164:3;5144:24;5140:37;5136:42;5121:58;5106:74;;4993:201;-1:-1:-1;;;;;5240:1:30;5224:14;;;5220:22;5207:36;;-1:-1:-1;4158:1352:30:o;5515:384::-;799:12999:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033","sourceMap":"799:12999:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:44;;;;;;;;;;-1:-1:-1;1933:44:11;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1933:44:11;;;;;;-1:-1:-1;;;;;363:32:30;;;345:51;;333:2;318:18;1933:44:11;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;863:14:30;;856:22;838:41;;826:2;811:18;2565:202:0;698:187:30;1024:25:11;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1591:26::-;;;;;;;;;;;;;;;;;;;1792:25:30;;;1780:2;1765:18;1591:26:11;1646:177:30;8266:432:11;;;;;;;;;;-1:-1:-1;8266:432:11;;;;;:::i;:::-;;:::i;8704:444::-;;;;;;;;;;-1:-1:-1;8704:444:11;;;;;:::i;:::-;;:::i;3810:120:0:-;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;10779:2086:11;;;;;;;;;;-1:-1:-1;10779:2086:11;;;;;:::i;:::-;;:::i;4226:136:0:-;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;5328:245::-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;6704:278:11:-;;;;;;;;;;-1:-1:-1;6704:278:11;;;;;:::i;:::-;;:::i;997:21::-;;;;;;;;;;;;;:::i;1325:28::-;;;;;;;;;;;;;;;;3004:263:15;;;;;;;;;;-1:-1:-1;3004:263:15;;;;;:::i;:::-;;:::i;9612:113:11:-;;;;;;;;;;-1:-1:-1;9612:113:11;;;;;:::i;:::-;-1:-1:-1;;;;;9694:20:11;9671:4;9694:20;;;:10;:20;;;;;;:24;;;9612:113;907:35;;;;;;;;;;;;;;;144:20:15;;;;;;;;;;;;;;;;7525:108:11;;;;;;;;;;-1:-1:-1;7525:108:11;;;;;:::i;:::-;7594:13;:32;7525:108;243:45:15;;;;;;;;;;-1:-1:-1;243:45:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;1056:30:11;;;;;;;;;;;;;;;;1207:31;;;;;;;;;;;;;;;;9154:124;;;;;;;;;;-1:-1:-1;9154:124:11;;;;;:::i;:::-;9217:18;9254:17;;;:8;:17;;;;;;;;;9154:124;;;;;;;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;6458:106:11:-;;;;;;;;;;-1:-1:-1;6458:106:11;;;;;:::i;:::-;;:::i;9780:602::-;;;;;;:::i;:::-;;:::i;6266:90::-;;;;;;;;;;-1:-1:-1;6266:90:11;;;;;:::i;:::-;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;12924:801:11;;;;;;;;;;-1:-1:-1;12924:801:11;;;;;:::i;:::-;;:::i;7942:317::-;;;;;;;;;;-1:-1:-1;7942:317:11;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;9284:152:11:-;;;;;;;;;;-1:-1:-1;9284:152:11;;;;;:::i;:::-;;:::i;854:47::-;;;;;;;;;;;;;;;1843:28;;;;;;;;;;;;;;;;7754:145;;;;;;;;;;-1:-1:-1;7754:145:11;;;;;:::i;:::-;;:::i;2098:27::-;;;;;;;;;;;;;;;;7123:284;;;;;;;;;;-1:-1:-1;7123:284:11;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:9;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;1024:25:11:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8266:432::-;8332:36;;-1:-1:-1;;;8332:36:11;;;;;1792:25:30;;;8372:10:11;;-1:-1:-1;;;;;8340:10:11;8332:27;;;;1765:18:30;;8332:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8332:50:11;;8324:101;;;;-1:-1:-1;;;8324:101:11;;7256:2:30;8324:101:11;;;7238:21:30;7295:2;7275:18;;;7268:30;7334:34;7314:18;;;7307:62;-1:-1:-1;;;7385:18:30;;;7378:36;7431:19;;8324:101:11;;;;;;;;;8464:29;8443:17;;;;:8;:17;;;;;;;;:50;;;;;;;;:::i;:::-;;8435:90;;;;-1:-1:-1;;;8435:90:11;;7663:2:30;8435:90:11;;;7645:21:30;7702:2;7682:18;;;7675:30;7741:29;7721:18;;;7714:57;7788:18;;8435:90:11;7461:351:30;8435:90:11;8536:17;;;;:8;:17;;;;;:49;;-1:-1:-1;;8536:49:11;8556:29;8536:49;;;8595:11;:16;;8536:49;;:17;8595:16;;8536:49;;8595:16;:::i;:::-;;;;-1:-1:-1;;8627:64:11;;;;;;8652:4;;8659:10;;8671:7;;8680:10;;8627:64;:::i;:::-;;;;;;;;8266:432;:::o;8704:444::-;8772:36;;-1:-1:-1;;;8772:36:11;;;;;1792:25:30;;;8812:10:11;;-1:-1:-1;;;;;8780:10:11;8772:27;;;;1765:18:30;;8772:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8772:50:11;;8764:103;;;;-1:-1:-1;;;8764:103:11;;8742:2:30;8764:103:11;;;8724:21:30;8781:2;8761:18;;;8754:30;8820:34;8800:18;;;8793:62;-1:-1:-1;;;8871:18:30;;;8864:38;8919:19;;8764:103:11;8540:404:30;8764:103:11;8906:31;8885:17;;;:8;:17;;;;;;;;:52;;;;;;;;:::i;:::-;;8877:94;;;;-1:-1:-1;;;8877:94:11;;9151:2:30;8877:94:11;;;9133:21:30;9190:2;9170:18;;;9163:30;9229:31;9209:18;;;9202:59;9278:18;;8877:94:11;8949:353:30;8877:94:11;9002:31;8982:17;;;:8;:17;;;;;:51;;-1:-1:-1;;8982:51:11;;;9043:11;:16;;8982:51;;9002:31;9043:16;;8982:51;;9043:16;:::i;:::-;;;;-1:-1:-1;;9075:66:11;;;;;;9102:4;;9109:10;;9121:7;;9130:10;;9075:66;:::i;10779:2086::-;-1:-1:-1;;;;;9694:20:11;;10839:4;9694:20;;;:10;:20;;;;;;10855:78;;;;-1:-1:-1;;;10855:78:11;;;;;;;:::i;:::-;10987:29;10965:8;-1:-1:-1;;;;;10951:30:11;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;;;;;:::i;:::-;;10943:100;;;;-1:-1:-1;;;10943:100:11;;10340:2:30;10943:100:11;;;10322:21:30;10379:2;10359:18;;;10352:30;-1:-1:-1;;;10398:18:30;;;10391:52;10460:18;;10943:100:11;10138:346:30;10943:100:11;11075:8;-1:-1:-1;;;;;11061:33:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11100:1;11061:40;11053:81;;;;-1:-1:-1;;;11053:81:11;;10880:2:30;11053:81:11;;;10862:21:30;10919:2;10899:18;;;10892:30;10958;10938:18;;;10931:58;11006:18;;11053:81:11;10678:352:30;11053:81:11;11184:8;-1:-1:-1;;;;;11170:31:11;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11152:15;:51;11144:108;;;;-1:-1:-1;;;11144:108:11;;11237:2:30;11144:108:11;;;11219:21:30;11276:2;11256:18;;;11249:30;11315:34;11295:18;;;11288:62;-1:-1:-1;;;11366:18:30;;;11359:42;11418:19;;11144:108:11;11035:408:30;11144:108:11;11281:37;;-1:-1:-1;;;11281:37:11;;11263:15;11281:37;;;1792:25:30;;;11263:15:11;-1:-1:-1;;;;;11281:34:11;;;;;1765:18:30;;11281:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11347;;-1:-1:-1;;;11347:37:11;;11382:1;11347:37;;;1792:25:30;11263:55:11;;-1:-1:-1;11328:16:11;;-1:-1:-1;;;;;11347:34:11;;;;;1765:18:30;;11347:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11417;;-1:-1:-1;;;11417:37:11;;11452:1;11417:37;;;1792:25:30;11328:56:11;;-1:-1:-1;11394:20:11;;-1:-1:-1;;;;;11417:34:11;;;;;1765:18:30;;11417:37:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11394:60;-1:-1:-1;11464:18:11;11394:60;11485:18;11495:8;11485:7;:18;:::i;:::-;:33;;;;:::i;:::-;11464:54;;11529:28;11594:5;11575:15;;11561:11;;:29;;;;:::i;:::-;11560:39;;;;:::i;:::-;11529:70;;11609:29;11676:5;11656:16;;11642:11;;:30;;;;:::i;:::-;11641:40;;;;:::i;:::-;11609:72;;11692:18;11728:17;11813:21;11802:8;:32;11798:83;;;11866:4;11850:20;;11798:83;11941:20;11928:10;:33;11924:83;;;-1:-1:-1;11992:4:11;11924:83;12021:13;:29;;;;;12038:12;12021:29;12017:676;;;12110:39;;-1:-1:-1;;;12110:39:11;;12147:1;12110:39;;;12565:36:30;-1:-1:-1;;;;;12110:36:11;;;;;12538:18:30;;12110:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12203:19;12239:8;-1:-1:-1;;;;;12225:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12203:62;;12284:7;12279:290;12301:11;12297:1;:15;;;12279:290;;;12365:36;;-1:-1:-1;;;12365:36:11;;12595:4:30;12583:17;;12365:36:11;;;12565::30;12337:25:11;;-1:-1:-1;;;;;12365:33:11;;;;;12538:18:30;;12365:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12365:36:11;;;;;;;;;;;;:::i;:::-;12337:64;;12431:53;12443:3;:10;;;12455:3;:9;;;12466:3;:7;;;12475:3;:8;;;12431:11;:53::i;:::-;12419:9;;;:65;;;12502:52;;-1:-1:-1;;;12502:52:11;;14720:4:30;14708:17;;12502:52:11;;;14690:36:30;14742:18;;;14735:34;;;;-1:-1:-1;;;;;12502:38:11;;;;;14663:18:30;;12502:52:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12319:250;12314:3;;;;;:::i;:::-;;;;12279:290;;;;12052:527;12017:676;;;12643:39;;-1:-1:-1;;;12643:39:11;;12680:1;12643:39;;;12565:36:30;-1:-1:-1;;;;;12643:36:11;;;;;12538:18:30;;12643:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12017:676;12708:103;;;15431:14:30;;15424:22;15406:41;;15490:14;;15483:22;15478:2;15463:18;;15456:50;15522:18;;;15515:34;;;15580:2;15565:18;;15558:34;;;15623:3;15608:19;;15601:35;;;12708:103:11;;15393:3:30;15378:19;12708:103:11;;;;;;;12829:12;:29;;;;;12845:13;12829:29;12822:36;10779:2086;-1:-1:-1;;;;;;;;;;10779:2086:11:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:6;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;6704:278:11:-;6807:5;6785:18;:27;;6777:78;;;;-1:-1:-1;;;6777:78:11;;;;;;;:::i;:::-;6894:1;6873:18;:22;6865:63;;;;-1:-1:-1;;;6865:63:11;;16256:2:30;6865:63:11;;;16238:21:30;16295:2;16275:18;;;16268:30;16334;16314:18;;;16307:58;16382:18;;6865:63:11;16054:352:30;6865:63:11;6939:15;:36;6704:278::o;997:21::-;;;;;;;:::i;3004:263:15:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:15;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:15:o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;6458:106:11:-;6529:11;:28;6543:14;6529:11;:28;:::i;:::-;;6458:106;:::o;9780:602::-;9856:7;9896:12;;9883:9;:25;9875:77;;;;-1:-1:-1;;;9875:77:11;;19445:2:30;9875:77:11;;;19427:21:30;19484:2;19464:18;;;19457:30;19523:34;19503:18;;;19496:62;-1:-1:-1;;;19574:18:30;;;19567:37;19621:19;;9875:77:11;19243:403:30;9875:77:11;10033:106;;-1:-1:-1;;;10033:106:11;;10018:12;;-1:-1:-1;;;;;10054:22:11;10033:64;;;;:106;;10098:13;;10121:4;;10128:10;;10033:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10018:121;;10190:1;10173:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;10220:13:11;;;-1:-1:-1;;;;;10201:16:11;;;;;;:10;:16;;;;;;;;:32;;;10243:24;;;:9;:24;;;;;:31;;-1:-1:-1;;;;;;10243:31:11;;;;;;10327:13;;10290:63;;;;;;10314:4;;10212;;10342:10;;10290:63;:::i;:::-;;;;;;;;10371:4;9780:602;-1:-1:-1;;9780:602:11:o;6266:90::-;6329:7;:20;6339:10;6329:7;:20;:::i;12924:801::-;-1:-1:-1;;;;;9694:20:11;;9671:4;9694:20;;;:10;:20;;;;;;12984:78;;;;-1:-1:-1;;;12984:78:11;;;;;;;:::i;:::-;13116:27;13094:8;-1:-1:-1;;;;;13080:30:11;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;;;;;;;;:::i;:::-;;13072:98;;;;-1:-1:-1;;;13072:98:11;;10340:2:30;13072:98:11;;;10322:21:30;10379:2;10359:18;;;10352:30;-1:-1:-1;;;10398:18:30;;;10391:52;10460:18;;13072:98:11;10138:346:30;13072:98:11;13231:1;13202:8;-1:-1:-1;;;;;13188:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;13180:78;;;;-1:-1:-1;;;13180:78:11;;20276:2:30;13180:78:11;;;20258:21:30;20315:2;20295:18;;;20288:30;-1:-1:-1;;;20334:18:30;;;20327:51;20395:18;;13180:78:11;20074:345:30;13180:78:11;13311:39;;-1:-1:-1;;;13311:39:11;;13348:1;13311:39;;;12565:36:30;-1:-1:-1;;;;;13311:36:11;;;;;12538:18:30;;13311:39:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13395:19;13431:8;-1:-1:-1;;;;;13417:38:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13395:62;;13472:7;13467:210;13489:11;13485:1;:15;;;13467:210;;;13549:36;;-1:-1:-1;;;13549:36:11;;12595:4:30;12583:17;;13549:36:11;;;12565::30;13521:25:11;;-1:-1:-1;;;;;13549:33:11;;;;;12538:18:30;;13549:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13549:36:11;;;;;;;;;;;;:::i;:::-;13521:64;;13599:67;13614:3;:10;;;13626:3;:9;;;13637:3;:7;;;13646:3;:8;;;13656:3;:9;;;13599:14;:67::i;:::-;;13507:170;13502:3;;;;;:::i;:::-;;;;13467:210;;;-1:-1:-1;13692:26:11;;-1:-1:-1;;;;;363:32:30;;345:51;;13692:26:11;;333:2:30;318:18;13692:26:11;;;;;;;;12974:751;12924:801;:::o;7942:317::-;280:23:27;2464:16:0;2475:4;2464:10;:16::i;:::-;8058:31:11::1;8037:17:::0;;;:8:::1;:17;::::0;;;;;::::1;;:52;::::0;::::1;;;;;;:::i;:::-;;8029:101;;;::::0;-1:-1:-1;;;8029:101:11;;20825:2:30;8029:101:11::1;::::0;::::1;20807:21:30::0;20864:2;20844:18;;;20837:30;20903:34;20883:18;;;20876:62;-1:-1:-1;;;20954:18:30;;;20947:34;20998:19;;8029:101:11::1;20623:400:30::0;8029:101:11::1;8141:17;::::0;;;:8:::1;:17;::::0;;;;:46;;8161:26:::1;::::0;8141:17;-1:-1:-1;;8141:46:11::1;8161:26:::0;;8141:46:::1;;::::0;;-1:-1:-1;8203:49:11::1;::::0;;8225:4:::1;21268:34:30::0;;-1:-1:-1;;;;;8232:10:11::1;21338:15:30::0;21333:2;21318:18;;21311:43;21370:18;;;21363:34;;;8203:49:11::1;::::0;21218:2:30;21203:18;8203:49:11::1;21028:375:30::0;4642:138:0;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;9284:152:11:-:0;9360:4;9423:6;-1:-1:-1;;;;;9383:46:11;9391:10;-1:-1:-1;;;;;9383:27:11;;9411:7;9383:36;;;;;;;;;;;;;1792:25:30;;1780:2;1765:18;;1646:177;9383:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9383:46:11;;;9284:152;-1:-1:-1;;;9284:152:11:o;7754:145::-;7826:1;7815:8;:12;7807:56;;;;-1:-1:-1;;;7807:56:11;;21610:2:30;7807:56:11;;;21592:21:30;21649:2;21629:18;;;21622:30;21688:33;21668:18;;;21661:61;21739:18;;7807:56:11;21408:355:30;7807:56:11;7873:19;7883:8;3429:5:15;:16;3373:79;7873:19:11;7754:145;:::o;7123:284::-;7229:5;7206:19;:28;;7198:79;;;;-1:-1:-1;;;7198:79:11;;;;;;;:::i;:::-;7317:1;7295:19;:23;7287:64;;;;-1:-1:-1;;;7287:64:11;;16256:2:30;7287:64:11;;;16238:21:30;16295:2;16275:18;;;16268:30;16334;16314:18;;;16307:58;16382:18;;7287:64:11;16054:352:30;7287:64:11;7362:16;:38;7123:284::o;3686:388:15:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:15;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;:13;:22;;;;;;:29;;-1:-1:-1;;3945:29:15;3970:4;3945:29;;;3881:54;-1:-1:-1;3990:54:15;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:15;3686:388;-1:-1:-1;;;;;3686:388:15:o;3199:103:0:-;3265:30;3276:4;735:10:6;3265::0;:30::i;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:6;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;5008:907:15;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:15;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:15;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:15;;;;;1792:25:30;;;1765:18;;5277:24:15;1646:177:30;5241:60:15;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:15;;;;;22670:25:30;;;5372:15:15;22711:18:30;;;22704:34;22754:18;;;22747:34;;;22643:18;;5348:47:15;22468:319:30;5311:84:15;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:15;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:15;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:15;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:15;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:15:o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;23959:32:30;;3565:47:0;;;23941:51:30;24008:18;;;24001:34;;;23914:18;;3565:47:0;23767:274:30;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:30;;14:180;-1:-1:-1;14:180:30:o;407:286::-;465:6;518:2;506:9;497:7;493:23;489:32;486:52;;;534:1;531;524:12;486:52;560:23;;-1:-1:-1;;;;;;612:32:30;;602:43;;592:71;;659:1;656;649:12;592:71;682:5;407:286;-1:-1:-1;;;407:286:30:o;890:250::-;975:1;985:113;999:6;996:1;993:13;985:113;;;1075:11;;;1069:18;1056:11;;;1049:39;1021:2;1014:10;985:113;;;-1:-1:-1;;1132:1:30;1114:16;;1107:27;890:250::o;1145:271::-;1187:3;1225:5;1219:12;1252:6;1247:3;1240:19;1268:76;1337:6;1330:4;1325:3;1321:14;1314:4;1307:5;1303:16;1268:76;:::i;:::-;1398:2;1377:15;-1:-1:-1;;1373:29:30;1364:39;;;;1405:4;1360:50;;1145:271;-1:-1:-1;;1145:271:30:o;1421:220::-;1570:2;1559:9;1552:21;1533:4;1590:45;1631:2;1620:9;1616:18;1608:6;1590:45;:::i;2195:131::-;-1:-1:-1;;;;;2270:31:30;;2260:42;;2250:70;;2316:1;2313;2306:12;2331:247;2390:6;2443:2;2431:9;2422:7;2418:23;2414:32;2411:52;;;2459:1;2456;2449:12;2411:52;2498:9;2485:23;2517:31;2542:5;2517:31;:::i;2583:315::-;2651:6;2659;2712:2;2700:9;2691:7;2687:23;2683:32;2680:52;;;2728:1;2725;2718:12;2680:52;2764:9;2751:23;2741:33;;2824:2;2813:9;2809:18;2796:32;2837:31;2862:5;2837:31;:::i;:::-;2887:5;2877:15;;;2583:315;;;;;:::o;2903:127::-;2964:10;2959:3;2955:20;2952:1;2945:31;2995:4;2992:1;2985:15;3019:4;3016:1;3009:15;3035:253;3107:2;3101:9;3149:4;3137:17;;3184:18;3169:34;;3205:22;;;3166:62;3163:88;;;3231:18;;:::i;:::-;3267:2;3260:22;3035:253;:::o;3293:275::-;3364:2;3358:9;3429:2;3410:13;;-1:-1:-1;;3406:27:30;3394:40;;3464:18;3449:34;;3485:22;;;3446:62;3443:88;;;3511:18;;:::i;:::-;3547:2;3540:22;3293:275;;-1:-1:-1;3293:275:30:o;3573:187::-;3622:4;3655:18;3647:6;3644:30;3641:56;;;3677:18;;:::i;:::-;-1:-1:-1;3743:2:30;3722:15;-1:-1:-1;;3718:29:30;3749:4;3714:40;;3573:187::o;3765:338::-;3830:5;3859:53;3875:36;3904:6;3875:36;:::i;:::-;3859:53;:::i;:::-;3850:62;;3935:6;3928:5;3921:21;3975:3;3966:6;3961:3;3957:16;3954:25;3951:45;;;3992:1;3989;3982:12;3951:45;4041:6;4036:3;4029:4;4022:5;4018:16;4005:43;4095:1;4088:4;4079:6;4072:5;4068:18;4064:29;4057:40;3765:338;;;;;:::o;4108:222::-;4151:5;4204:3;4197:4;4189:6;4185:17;4181:27;4171:55;;4222:1;4219;4212:12;4171:55;4244:80;4320:3;4311:6;4298:20;4291:4;4283:6;4279:17;4244:80;:::i;4335:944::-;4449:6;4457;4465;4473;4481;4534:3;4522:9;4513:7;4509:23;4505:33;4502:53;;;4551:1;4548;4541:12;4502:53;4590:9;4577:23;4609:31;4634:5;4609:31;:::i;:::-;4659:5;-1:-1:-1;4711:2:30;4696:18;;4683:32;;-1:-1:-1;4766:2:30;4751:18;;4738:32;4789:18;4819:14;;;4816:34;;;4846:1;4843;4836:12;4816:34;4869:50;4911:7;4902:6;4891:9;4887:22;4869:50;:::i;:::-;4859:60;;4972:2;4961:9;4957:18;4944:32;4928:48;;5001:2;4991:8;4988:16;4985:36;;;5017:1;5014;5007:12;4985:36;-1:-1:-1;5040:24:30;;5095:4;5087:13;;5083:27;-1:-1:-1;5073:55:30;;5124:1;5121;5114:12;5073:55;5147:74;5213:7;5208:2;5195:16;5190:2;5186;5182:11;5147:74;:::i;:::-;4335:944;;;;-1:-1:-1;4335:944:30;;5268:3;5253:19;5240:33;;4335:944;-1:-1:-1;;;4335:944:30:o;5284:127::-;5345:10;5340:3;5336:20;5333:1;5326:31;5376:4;5373:1;5366:15;5400:4;5397:1;5390:15;5416:345;5565:2;5550:18;;5598:1;5587:13;;5577:144;;5643:10;5638:3;5634:20;5631:1;5624:31;5678:4;5675:1;5668:15;5706:4;5703:1;5696:15;5577:144;5730:25;;;5416:345;:::o;5766:322::-;5835:6;5888:2;5876:9;5867:7;5863:23;5859:32;5856:52;;;5904:1;5901;5894:12;5856:52;5944:9;5931:23;5977:18;5969:6;5966:30;5963:50;;;6009:1;6006;5999:12;5963:50;6032;6074:7;6065:6;6054:9;6050:22;6032:50;:::i;:::-;6022:60;5766:322;-1:-1:-1;;;;5766:322:30:o;6413:380::-;6492:1;6488:12;;;;6535;;;6556:61;;6610:4;6602:6;6598:17;6588:27;;6556:61;6663:2;6655:6;6652:14;6632:18;6629:38;6626:161;;6709:10;6704:3;6700:20;6697:1;6690:31;6744:4;6741:1;6734:15;6772:4;6769:1;6762:15;6626:161;;6413:380;;;:::o;6798:251::-;6868:6;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6969:9;6963:16;6988:31;7013:5;6988:31;:::i;7817:127::-;7878:10;7873:3;7869:20;7866:1;7859:31;7909:4;7906:1;7899:15;7933:4;7930:1;7923:15;7949:125;8014:9;;;8035:10;;;8032:36;;;8048:18;;:::i;8079:456::-;-1:-1:-1;;;;;8366:15:30;;;8348:34;;8418:15;;;8413:2;8398:18;;8391:43;8465:2;8450:18;;8443:34;;;;8513:15;;;8508:2;8493:18;;8486:43;8297:3;8282:19;;8079:456::o;9307:128::-;9374:9;;;9395:11;;;9392:37;;;9409:18;;:::i;9440:409::-;9642:2;9624:21;;;9681:2;9661:18;;;9654:30;9720:34;9715:2;9700:18;;9693:62;-1:-1:-1;;;9786:2:30;9771:18;;9764:43;9839:3;9824:19;;9440:409::o;9854:279::-;9943:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:52;;;10012:1;10009;10002:12;9964:52;10044:9;10038:16;10083:1;10076:5;10073:12;10063:40;;10099:1;10096;10089:12;10489:184;10559:6;10612:2;10600:9;10591:7;10587:23;10583:32;10580:52;;;10628:1;10625;10618:12;10580:52;-1:-1:-1;10651:16:30;;10489:184;-1:-1:-1;10489:184:30:o;12018:168::-;12091:9;;;12122;;12139:15;;;12133:22;;12119:37;12109:71;;12160:18;;:::i;12191:217::-;12231:1;12257;12247:132;;12301:10;12296:3;12292:20;12289:1;12282:31;12336:4;12333:1;12326:15;12364:4;12361:1;12354:15;12247:132;-1:-1:-1;12393:9:30;;12191:217::o;12803:322::-;12879:5;12908:53;12924:36;12953:6;12924:36;:::i;12908:53::-;12899:62;;12984:6;12977:5;12970:21;13024:3;13015:6;13010:3;13006:16;13003:25;13000:45;;;13041:1;13038;13031:12;13000:45;13054:65;13112:6;13105:4;13098:5;13094:16;13089:3;13054:65;:::i;13130:236::-;13183:5;13236:3;13229:4;13221:6;13217:17;13213:27;13203:55;;13254:1;13251;13244:12;13203:55;13276:84;13356:3;13347:6;13341:13;13334:4;13326:6;13322:17;13276:84;:::i;13371:1142::-;13465:6;13518:2;13506:9;13497:7;13493:23;13489:32;13486:52;;;13534:1;13531;13524:12;13486:52;13567:9;13561:16;13596:18;13637:2;13629:6;13626:14;13623:34;;;13653:1;13650;13643:12;13623:34;13676:22;;;;13732:4;13714:16;;;13710:27;13707:47;;;13750:1;13747;13740:12;13707:47;13776:22;;:::i;:::-;13828:2;13822:9;13840:33;13865:7;13840:33;:::i;:::-;13882:22;;13950:2;13942:11;;;13936:18;13920:14;;;13913:42;13994:2;13986:11;;13980:18;14010:16;;;14007:36;;;14039:1;14036;14029:12;14007:36;14062:17;;14110:4;14102:13;;14098:27;-1:-1:-1;14088:55:30;;14139:1;14136;14129:12;14088:55;14175:78;14245:7;14240:2;14234:9;14229:2;14225;14221:11;14175:78;:::i;:::-;14170:2;14163:5;14159:14;14152:102;;14293:2;14289;14285:11;14279:18;14322:2;14312:8;14309:16;14306:36;;;14338:1;14335;14328:12;14306:36;14374:55;14421:7;14410:8;14406:2;14402:17;14374:55;:::i;:::-;14369:2;14362:5;14358:14;14351:79;;14477:3;14473:2;14469:12;14463:19;14457:3;14450:5;14446:15;14439:44;14502:5;14492:15;;;;;13371:1142;;;;:::o;14780:175::-;14817:3;14861:4;14854:5;14850:16;14890:4;14881:7;14878:17;14875:43;;14898:18;;:::i;:::-;14947:1;14934:15;;14780:175;-1:-1:-1;;14780:175:30:o;15647:402::-;15849:2;15831:21;;;15888:2;15868:18;;;15861:30;15927:34;15922:2;15907:18;;15900:62;-1:-1:-1;;;15993:2:30;15978:18;;15971:36;16039:3;16024:19;;15647:402::o;16411:623::-;16719:1;16715;16710:3;16706:11;16702:19;16694:6;16690:32;16679:9;16672:51;16759:6;16754:2;16743:9;16739:18;16732:34;16802:3;16797:2;16786:9;16782:18;16775:31;16653:4;16829:46;16870:3;16859:9;16855:19;16847:6;16829:46;:::i;:::-;16923:9;16915:6;16911:22;16906:2;16895:9;16891:18;16884:50;16951:33;16977:6;16969;16951:33;:::i;:::-;16943:41;;;17021:6;17015:3;17004:9;17000:19;16993:35;16411:623;;;;;;;;:::o;17165:545::-;17267:2;17262:3;17259:11;17256:448;;;17303:1;17328:5;17324:2;17317:17;17373:4;17369:2;17359:19;17443:2;17431:10;17427:19;17424:1;17420:27;17414:4;17410:38;17479:4;17467:10;17464:20;17461:47;;;-1:-1:-1;17502:4:30;17461:47;17557:2;17552:3;17548:12;17545:1;17541:20;17535:4;17531:31;17521:41;;17612:82;17630:2;17623:5;17620:13;17612:82;;;17675:17;;;17656:1;17645:13;17612:82;;;17616:3;;;17165:545;;;:::o;17886:1352::-;18012:3;18006:10;18039:18;18031:6;18028:30;18025:56;;;18061:18;;:::i;:::-;18090:97;18180:6;18140:38;18172:4;18166:11;18140:38;:::i;:::-;18134:4;18090:97;:::i;:::-;18242:4;;18306:2;18295:14;;18323:1;18318:663;;;;19025:1;19042:6;19039:89;;;-1:-1:-1;19094:19:30;;;19088:26;19039:89;-1:-1:-1;;17843:1:30;17839:11;;;17835:24;17831:29;17821:40;17867:1;17863:11;;;17818:57;19141:81;;18288:944;;18318:663;17112:1;17105:14;;;17149:4;17136:18;;-1:-1:-1;;18354:20:30;;;18472:236;18486:7;18483:1;18480:14;18472:236;;;18575:19;;;18569:26;18554:42;;18667:27;;;;18635:1;18623:14;;;;18502:19;;18472:236;;;18476:3;18736:6;18727:7;18724:19;18721:201;;;18797:19;;;18791:26;-1:-1:-1;;18880:1:30;18876:14;;;18892:3;18872:24;18868:37;18864:42;18849:58;18834:74;;18721:201;-1:-1:-1;;;;;18968:1:30;18952:14;;;18948:22;18935:36;;-1:-1:-1;17886:1352:30:o;19651:418::-;19856:2;19845:9;19838:21;19819:4;19876:45;19917:2;19906:9;19902:18;19894:6;19876:45;:::i;:::-;-1:-1:-1;;;;;19995:15:30;;;19990:2;19975:18;;19968:43;20047:15;;;;20042:2;20027:18;;;20020:43;19868:53;19651:418;-1:-1:-1;;19651:418:30:o;21768:695::-;22075:6;22064:9;22057:25;22147:1;22143;22138:3;22134:11;22130:19;22122:6;22118:32;22113:2;22102:9;22098:18;22091:60;22187:6;22182:2;22171:9;22167:18;22160:34;22230:3;22225:2;22214:9;22210:18;22203:31;22038:4;22257:46;22298:3;22287:9;22283:19;22275:6;22257:46;:::i;:::-;22352:9;22344:6;22340:22;22334:3;22323:9;22319:19;22312:51;22380:33;22406:6;22398;22380:33;:::i;:::-;22372:41;;;22450:6;22444:3;22433:9;22429:19;22422:35;21768:695;;;;;;;;;:::o;22792:384::-;-1:-1:-1;;;;;;22977:33:30;;22965:46;;23034:13;;22947:3;;23056:74;23034:13;23119:1;23110:11;;23103:4;23091:17;;23056:74;:::i;:::-;23150:16;;;;23168:1;23146:24;;22792:384;-1:-1:-1;;;22792:384:30:o;23181:287::-;23310:3;23348:6;23342:13;23364:66;23423:6;23418:3;23411:4;23403:6;23399:17;23364:66;:::i;:::-;23446:16;;;;;23181:287;-1:-1:-1;;23181:287:30:o;23473:289::-;23648:6;23637:9;23630:25;23691:2;23686;23675:9;23671:18;23664:30;23611:4;23711:45;23752:2;23741:9;23737:18;23729:6;23711:45;:::i","linkReferences":{},"immutableReferences":{"1002":[{"start":1591,"length":32},{"start":5105,"length":32}],"1004":[{"start":1086,"length":32},{"start":1955,"length":32},{"start":2372,"length":32},{"start":2456,"length":32},{"start":2865,"length":32},{"start":6431,"length":32},{"start":6565,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","daoMetadata()":"0787e15c","daoName()":"48976936","delay()":"6a42b8f8","draftProposal(string)":"9f367e08","evaluateProposal(address)":"2df57dd6","executeProposal(address)":"a67a03ab","getMemberStatus(uint256)":"7d0d719b","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","inviteMember(uint256)":"bc5862a4","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","isProposal(address)":"52050003","isTokenOwner(uint256,address)":"d59f2827","loadedActions(bytes32)":"6e8c7ab9","memberCount()":"11aee380","minVotePeriod()":"4d6561c1","nftAddress()":"5bf8633a","proposalCost()":"e664f3b2","proposalCount()":"da35c664","proposalFactoryAddress()":"d94f22ee","proposals(uint256)":"013cf08b","quorumThreshold()":"7b7a91dd","registerMember(uint256)":"22e994f3","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDAOMetadata(string)":"977d1e18","setDAOName(string)":"a1de78e2","setDelay(uint256)":"e177246e","setMinVotePeriod(uint256)":"6c78a1c2","setQuorumThreshold(uint256)":"4524c7e1","setSupportThreshold(uint256)":"fefd778e","supportThreshold()":"7c36e8e8","supportsInterface(bytes4)":"01ffc9a7","unregisterMember(uint256)":"23dd523d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"daoName_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"daoMetadata_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nftAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposalFactoryAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"DAOCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MemberInvited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"memberAddress\",\"type\":\"address\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalEvaluated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle\",\"type\":\"string\"}],\"name\":\"draftProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"evaluateProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMemberStatus\",\"outputs\":[{\"internalType\":\"enum Enums.MemberStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"inviteMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"isProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"isTokenOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVotePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFactoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"registerMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOMetadata\",\"type\":\"string\"}],\"name\":\"setDAOMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDAOName\",\"type\":\"string\"}],\"name\":\"setDAOName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinVotePeriod\",\"type\":\"uint256\"}],\"name\":\"setMinVotePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumThreshold\",\"type\":\"uint256\"}],\"name\":\"setQuorumThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newSupportThreshold\",\"type\":\"uint256\"}],\"name\":\"setSupportThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supportThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Craig Branscom\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"DAOCreated(address,address,address)\":{\"params\":{\"admin\":\"address set with initial admin role\",\"nftAddress\":\"address of nft contract linked to dao\",\"proposalFactoryAddress\":\"address of proposal factory used by dao\"}},\"MemberInvited(address,address,uint256)\":{\"params\":{\"daoAddress\":\"address of dao where member was invited\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberRegistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was registered\",\"memberAddress\":\"address registering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being registered to dao\"}},\"MemberUnregistered(address,address,uint256,address)\":{\"params\":{\"daoAddress\":\"address of dao where member was unregistered\",\"memberAddress\":\"address unregistering token\",\"nftAddress\":\"address of nft contract linked to dao\",\"tokenId\":\"id of nft token being unregistered\"}},\"ProposalCreated(address,address,uint256,address)\":{\"params\":{\"creator\":\"address of proposal creator\",\"daoAddress\":\"address of dao\",\"proposal\":\"address of proposal contract\",\"proposalId\":\"unique proposal id assigned by dao\"}},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"ProposalExecuted(address)\":{\"params\":{\"proposal\":\"address of proposal that was executed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"admin_\":\"address that will be assigned the DAO_ADMIN role\",\"daoMetadata_\":\"metadata link for the dao\",\"daoName_\":\"name of the dao\",\"delay_\":\"amount of time that must elapse before a loaded action can be executed (in seconds)\",\"nftAddress_\":\"address of ERC721 contract representing voting rights\",\"proposalCost_\":\"required cost to draft a proposal (in wei)\",\"proposalFactoryAddress_\":\"address of OGREProposalFactory contract\"}},\"draftProposal(string)\":{\"details\":\"craft a new proposal\"},\"evaluateProposal(address)\":{\"details\":\"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.\",\"params\":{\"proposal\":\"address of proposal contract to evaluate\"},\"returns\":{\"_0\":\"bool true if proposal passed, false if failed\"}},\"executeProposal(address)\":{\"details\":\"executes readied actions\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}},\"isProposal(address)\":{\"details\":\"returns true if address is a proposal contract created by dao.\",\"params\":{\"proposal\":\"address to check\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDAOMetadata(string)\":{\"details\":\"sets new dao metadata\",\"params\":{\"newDAOMetadata\":\"new dao metadata\"}},\"setDAOName(string)\":{\"details\":\"sets new dao name\",\"params\":{\"newDAOName\":\"new dao name\"}},\"setDelay(uint256)\":{\"details\":\"sets a new delay for action hopper\",\"params\":{\"newDelay\":\"new delay value (in seconds)\"}},\"setMinVotePeriod(uint256)\":{\"details\":\"sets new min vote period for dao\",\"params\":{\"newMinVotePeriod\":\"min time in seconds\"}},\"setQuorumThreshold(uint256)\":{\"details\":\"sets new quorum threshold for dao. \",\"params\":{\"newQuorumThreshold\":\"quorum percentage (e.g. 555 = 5.55%)\"}},\"setSupportThreshold(uint256)\":{\"details\":\"sets new support threshold for dao\",\"params\":{\"newSupportThreshold\":\"support percentage (e.g. 555 = 5.55%)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine DAO Contract\",\"version\":1},\"userdoc\":{\"events\":{\"DAOCreated(address,address,address)\":{\"notice\":\"logs a successful dao creation\"},\"MemberInvited(address,address,uint256)\":{\"notice\":\"logs a successful member invited\"},\"MemberRegistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member registration\"},\"MemberUnregistered(address,address,uint256,address)\":{\"notice\":\"logs a successful member unregistration\"},\"ProposalCreated(address,address,uint256,address)\":{\"notice\":\"logs a proposal creation\"},\"ProposalEvaluated(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"ProposalExecuted(address)\":{\"notice\":\"logs successful execution of all proposal actions\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREDAO.sol\":\"OGREDAO\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0\",\"dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"daoName_","type":"string"},{"internalType":"string","name":"daoMetadata_","type":"string"},{"internalType":"address","name":"nftAddress_","type":"address"},{"internalType":"address","name":"proposalFactoryAddress_","type":"address"},{"internalType":"uint256","name":"proposalCost_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"address","name":"proposalFactoryAddress","type":"address","indexed":false},{"internalType":"address","name":"admin","type":"address","indexed":false}],"type":"event","name":"DAOCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"MemberInvited","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"nftAddress","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"memberAddress","type":"address","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false},{"internalType":"address","name":"proposal","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalEvaluated","anonymous":false},{"inputs":[{"internalType":"address","name":"proposal","type":"address","indexed":false}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoMetadata","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"daoName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"proposalTitle","type":"string"}],"stateMutability":"payable","type":"function","name":"draftProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"evaluateProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMemberStatus","outputs":[{"internalType":"enum Enums.MemberStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"inviteMember"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"proposal","type":"address"}],"stateMutability":"view","type":"function","name":"isProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVotePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFactoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"registerMember"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"string","name":"newDAOMetadata","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOMetadata"},{"inputs":[{"internalType":"string","name":"newDAOName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setDAOName"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDelay"},{"inputs":[{"internalType":"uint256","name":"newMinVotePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinVotePeriod"},{"inputs":[{"internalType":"uint256","name":"newQuorumThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorumThreshold"},{"inputs":[{"internalType":"uint256","name":"newSupportThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSupportThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"supportThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"admin_":"address that will be assigned the DAO_ADMIN role","daoMetadata_":"metadata link for the dao","daoName_":"name of the dao","delay_":"amount of time that must elapse before a loaded action can be executed (in seconds)","nftAddress_":"address of ERC721 contract representing voting rights","proposalCost_":"required cost to draft a proposal (in wei)","proposalFactoryAddress_":"address of OGREProposalFactory contract"}},"draftProposal(string)":{"details":"craft a new proposal"},"evaluateProposal(address)":{"details":"Evaluate a proposal using quorum and support thresholds from this dao. Proposal must have been created through this dao. Updates proposal contract state to either PASSED or FAILED. Emits a ProposalEvaluated event.","params":{"proposal":"address of proposal contract to evaluate"},"returns":{"_0":"bool true if proposal passed, false if failed"}},"executeProposal(address)":{"details":"executes readied actions"},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}},"isProposal(address)":{"details":"returns true if address is a proposal contract created by dao.","params":{"proposal":"address to check"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDAOMetadata(string)":{"details":"sets new dao metadata","params":{"newDAOMetadata":"new dao metadata"}},"setDAOName(string)":{"details":"sets new dao name","params":{"newDAOName":"new dao name"}},"setDelay(uint256)":{"details":"sets a new delay for action hopper","params":{"newDelay":"new delay value (in seconds)"}},"setMinVotePeriod(uint256)":{"details":"sets new min vote period for dao","params":{"newMinVotePeriod":"min time in seconds"}},"setQuorumThreshold(uint256)":{"details":"sets new quorum threshold for dao. ","params":{"newQuorumThreshold":"quorum percentage (e.g. 555 = 5.55%)"}},"setSupportThreshold(uint256)":{"details":"sets new support threshold for dao","params":{"newSupportThreshold":"support percentage (e.g. 555 = 5.55%)"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREDAO.sol":"OGREDAO"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d","urls":["bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0","dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":11} \ No newline at end of file diff --git a/out/OGREDAOFactory.sol/OGREDAOFactory.json b/out/OGREDAOFactory.sol/OGREDAOFactory.json deleted file mode 100644 index 14a5874..0000000 --- a/out/OGREDAOFactory.sol/OGREDAOFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREDAO","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"string","internalType":"string"},{"name":"nft","type":"address","internalType":"address"},{"name":"proposalFactory","type":"address","internalType":"address"},{"name":"proposalCost","type":"uint256","internalType":"uint256"},{"name":"admin","type":"address","internalType":"address"},{"name":"delay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506130fd8061001d5f395ff3fe608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000202565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000133565b620000b19796959493929190620002f6565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e1919062000354565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a198975050505050505050565b612d4d806200037b83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000165575f80fd5b813567ffffffffffffffff8082111562000183576200018362000141565b604051601f8301601f19908116603f01168101908282118183101715620001ae57620001ae62000141565b81604052838152866020858801011115620001c7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b0381168114620001fd575f80fd5b919050565b5f805f805f805f60e0888a03121562000219575f80fd5b873567ffffffffffffffff8082111562000231575f80fd5b6200023f8b838c0162000155565b985060208a013591508082111562000255575f80fd5b50620002648a828b0162000155565b9650506200027560408901620001e6565b94506200028560608901620001e6565b9350608088013592506200029c60a08901620001e6565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002d757602081850181015186830182015201620002b9565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200030a60e083018a620002b1565b82810360208401526200031e818a620002b1565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037457634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa264697066735822122069fe14d74514a993120c83a72a9219175ecc8ee4b23a827644bd433268df462264736f6c63430008140033","sourceMap":"129:523:18:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000038575f3560e01c806317350165146200003c578063b8f479e51462000058575b5f80fd5b620000455f5481565b6040519081526020015b60405180910390f35b6200006f6200006936600462000202565b62000088565b6040516001600160a01b0390911681526020016200004f565b5f80888888888888886040516200009f9062000133565b620000b19796959493929190620002f6565b604051809103905ff080158015620000cb573d5f803e3d5ffd5b50905060015f80828254620000e1919062000354565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a198975050505050505050565b612d4d806200037b83390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000165575f80fd5b813567ffffffffffffffff8082111562000183576200018362000141565b604051601f8301601f19908116603f01168101908282118183101715620001ae57620001ae62000141565b81604052838152866020858801011115620001c7575f80fd5b836020870160208301375f602085830101528094505050505092915050565b80356001600160a01b0381168114620001fd575f80fd5b919050565b5f805f805f805f60e0888a03121562000219575f80fd5b873567ffffffffffffffff8082111562000231575f80fd5b6200023f8b838c0162000155565b985060208a013591508082111562000255575f80fd5b50620002648a828b0162000155565b9650506200027560408901620001e6565b94506200028560608901620001e6565b9350608088013592506200029c60a08901620001e6565b915060c0880135905092959891949750929550565b5f81518084525f5b81811015620002d757602081850181015186830182015201620002b9565b505f602082860101526020601f19601f83011685010191505092915050565b60e081525f6200030a60e083018a620002b1565b82810360208401526200031e818a620002b1565b6001600160a01b039889166040850152968816606084015250506080810193909352931660a082015260c0019190915292915050565b808201808211156200037457634e487b7160e01b5f52601160045260245ffd5b9291505056fe60c060405234801562000010575f80fd5b5060405162002d4d38038062002d4d8339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002d0d83398151915283620001ed565b506200016c5f8051602062002d2d83398151915283620001ed565b50620001955f8051602062002d2d8339815191525f8051602062002d0d83398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a0516126fb620006125f395f818161043e015281816107a3015281816109440152818161099801528181610b310152818161191f01526119a501525f818161063701526113f101526126fb5ff3fe6080604052600436106101fa575f3560e01c80636e8c7ab91161010b578063a67a03ab11610099578063d94f22ee1161006b578063d94f22ee14610626578063da35c66414610659578063e177246e1461066e578063e664f3b21461068d578063fefd778e146106a257005b8063a67a03ab146105aa578063bc5862a4146105c9578063d547741f146105e8578063d59f28271461060757005b806391d14854116100dd57806391d1485414610527578063977d1e18146105465780639f367e0814610565578063a1de78e214610578578063a217fddf1461059757005b80636e8c7ab9146104945780637b7a91dd146104c25780637c36e8e8146104d75780637d0d719b146104ec57005b806336568abe1161018857806351ff2b741161015a57806351ff2b74146103d857806352050003146103f75780635bf8633a1461042d5780636a42b8f8146104605780636c78a1c21461047557005b806336568abe146103715780634524c7e11461039057806348976936146103af5780634d6561c1146103c357005b806322e994f3116101cc57806322e994f3146102c757806323dd523d146102e6578063248a9ca3146103055780632df57dd6146103335780632f2ff15d1461035257005b8063013cf08b1461020357806301ffc9a7146102545780630787e15c1461028357806311aee380146102a457005b3661020157005b005b34801561020e575f80fd5b5061023761021d366004611eaa565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025f575f80fd5b5061027361026e366004611ec1565b6106c1565b604051901515815260200161024b565b34801561028e575f80fd5b506102976106f7565b60405161024b9190611f3c565b3480156102af575f80fd5b506102b960085481565b60405190815260200161024b565b3480156102d2575f80fd5b506102016102e1366004611eaa565b610783565b3480156102f1575f80fd5b50610201610300366004611eaa565b610978565b348015610310575f80fd5b506102b961031f366004611eaa565b5f9081526020819052604090206001015490565b34801561033e575f80fd5b5061027361034d366004611f62565b610b5a565b34801561035d575f80fd5b5061020161036c366004611f7d565b61120c565b34801561037c575f80fd5b5061020161038b366004611f7d565b611236565b34801561039b575f80fd5b506102016103aa366004611eaa565b61126e565b3480156103ba575f80fd5b506102976112e4565b3480156103ce575f80fd5b506102b960075481565b3480156103e3575f80fd5b506102736103f2366004612099565b6112f1565b348015610402575f80fd5b50610273610411366004611f62565b6001600160a01b03165f908152600c6020526040902054151590565b348015610438575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b34801561046b575f80fd5b506102b960015481565b348015610480575f80fd5b5061020161048f366004611eaa565b600755565b34801561049f575f80fd5b506102736104ae366004611eaa565b60026020525f908152604090205460ff1681565b3480156104cd575f80fd5b506102b960055481565b3480156104e2575f80fd5b506102b960065481565b3480156104f7575f80fd5b5061051a610506366004611eaa565b5f9081526009602052604090205460ff1690565b60405161024b9190612142565b348015610532575f80fd5b50610273610541366004611f7d565b61133e565b348015610551575f80fd5b50610201610560366004612168565b611366565b610237610573366004612168565b611376565b348015610583575f80fd5b50610201610592366004612168565b611502565b3480156105a2575f80fd5b506102b95f81565b3480156105b5575f80fd5b506102016105c4366004611f62565b61150e565b3480156105d4575f80fd5b506102016105e3366004611eaa565b61184b565b3480156105f3575f80fd5b50610201610602366004611f7d565b611974565b348015610612575f80fd5b50610273610621366004611f7d565b611998565b348015610631575f80fd5b506102377f000000000000000000000000000000000000000000000000000000000000000081565b348015610664575f80fd5b506102b9600a5481565b348015610679575f80fd5b50610201610688366004611eaa565b611a41565b348015610698575f80fd5b506102b9600d5481565b3480156106ad575f80fd5b506102016106bc366004611eaa565b611a9c565b5f6001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610704906121a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610730906121a2565b801561077b5780601f106107525761010080835404028352916020019161077b565b820191905f5260205f20905b81548152906001019060200180831161075e57829003601f168201915b505050505081565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c91906121da565b6001600160a01b0316146108765760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561089a5761089a61212e565b036108e75760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161086d565b5f818152600960205260408120805460ff191660021790556008805460019290610912908490612209565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a9061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0191906121da565b6001600160a01b031614610a685760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161086d565b5f8181526009602052604081205460ff166003811115610a8a57610a8a61212e565b03610ad75760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161086d565b5f818152600960205260408120805460ff191690556008805460019290610aff908490612247565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba469061096d9030907f0000000000000000000000000000000000000000000000000000000000000000908590339061221c565b6001600160a01b0381165f908152600c6020526040812054610b8e5760405162461bcd60e51b815260040161086d9061225a565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef91906122a7565b6004811115610c0057610c0061212e565b14610c465760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906122c5565b5f03610cf45760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161086d565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5491906122c5565b4211610db75760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161086d565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2091906122c5565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610e68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c91906122c5565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef891906122c5565b90505f81610f068486612209565b610f109190612209565b90505f612710600554600854610f2691906122dc565b610f3091906122f3565b90505f612710600654600854610f4691906122dc565b610f5091906122f3565b90505f8082871115610f6157600191505b83851115610f6d575060015b818015610f775750805b1561114c57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b158015610fbb575f80fd5b505af1158015610fcd573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103291906122c5565b90505f5b818160ff1610156111455760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110ae919081019061235e565b90506110cb815f0151826020015183604001518460600151611b12565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b15801561111b575f80fd5b505af115801561112d573d5f803e3d5ffd5b5050505050808061113d90612426565b915050611036565b50506111a2565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561118b575f80fd5b505af115801561119d573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156111fe5750815b9a9950505050505050505050565b5f8281526020819052604090206001015461122681611bb8565b6112308383611bc2565b50505050565b6001600160a01b038116331461125f5760405163334bd91960e11b815260040160405180910390fd5b6112698282611c51565b505050565b6127108111156112905760405162461bcd60e51b815260040161086d90612444565b5f81116112df5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600555565b60038054610704906121a2565b5f80868686868660405160200161130c95949392919061248a565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60046113728282612522565b5050565b5f600d5434146113d85760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161086d565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da69061142a908690309033906004016125de565b6020604051808303815f875af1158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a91906121da565b90506001600a5f82825461147e9190612209565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e916114f49130918591339061221c565b60405180910390a192915050565b60036113728282612522565b6001600160a01b0381165f908152600c60205260409020546115425760405162461bcd60e51b815260040161086d9061225a565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a491906122a7565b60048111156115b5576115b561212e565b146115fb5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161086d565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c91906122c5565b116116a15760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161086d565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b1580156116df575f80fd5b505af11580156116f1573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa158015611732573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175691906122c5565b90505f5b818160ff1610156118095760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa1580156117ab573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117d2919081019061235e565b90506117f4815f01518260200151836040015184606001518560800151611cba565b5050808061180190612426565b91505061175a565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61187581611bb8565b5f8281526009602052604081205460ff1660038111156118975761189761212e565b146118f05760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161086d565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f9060600161183f565b5f8281526020819052604090206001015461198e81611bb8565b6112308383611c51565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b81526004016119f191815260200190565b602060405180830381865afa158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3091906121da565b6001600160a01b0316149392505050565b5f8111611a905760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161086d565b611a9981600155565b50565b612710811115611abe5760405162461bcd60e51b815260040161086d90612444565b5f8111611b0d5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161086d565b600655565b5f8060015442611b229190612209565b90505f8686868685604051602001611b3e95949392919061248a565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611ba69083908a908a908a908a908990612610565b60405180910390a15095945050505050565b611a998133611e71565b5f611bcd838361133e565b611c4a575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611c023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016106f1565b505f6106f1565b5f611c5c838361133e565b15611c4a575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016106f1565b60605f8686868686604051602001611cd695949392919061248a565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611d2057604051635d96957360e11b81526004810182905260240161086d565b824211611d5057604051638e98731160e01b8152600481018290524260248201526044810184905260640161086d565b5f818152600260205260408120805460ff19169055855160609103611d76575083611da2565b858051906020012085604051602001611d90929190612662565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611ddb96959493929190612610565b60405180910390a15f80896001600160a01b03168984604051611dfe9190612692565b5f6040518083038185875af1925050503d805f8114611e38576040519150601f19603f3d011682016040523d82523d5f602084013e611e3d565b606091505b509150915081611e645783816040516309ec695360e41b815260040161086d9291906126ad565b9998505050505050505050565b611e7b828261133e565b6113725760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161086d565b5f60208284031215611eba575f80fd5b5035919050565b5f60208284031215611ed1575f80fd5b81356001600160e01b031981168114611ee8575f80fd5b9392505050565b5f5b83811015611f09578181015183820152602001611ef1565b50505f910152565b5f8151808452611f28816020860160208601611eef565b601f01601f19169290920160200192915050565b602081525f611ee86020830184611f11565b6001600160a01b0381168114611a99575f80fd5b5f60208284031215611f72575f80fd5b8135611ee881611f4e565b5f8060408385031215611f8e575f80fd5b823591506020830135611fa081611f4e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715611fe257611fe2611fab565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561201157612011611fab565b604052919050565b5f67ffffffffffffffff82111561203257612032611fab565b50601f01601f191660200190565b5f61205261204d84612019565b611fe8565b9050828152838383011115612065575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261208a575f80fd5b611ee883833560208501612040565b5f805f805f60a086880312156120ad575f80fd5b85356120b881611f4e565b945060208601359350604086013567ffffffffffffffff808211156120db575f80fd5b6120e789838a0161207b565b945060608801359150808211156120fc575f80fd5b508601601f8101881361210d575f80fd5b61211c88823560208401612040565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061216257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f60208284031215612178575f80fd5b813567ffffffffffffffff81111561218e575f80fd5b61219a8482850161207b565b949350505050565b600181811c908216806121b657607f821691505b6020821081036121d457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121ea575f80fd5b8151611ee881611f4e565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f1576106f16121f5565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156106f1576106f16121f5565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156122b7575f80fd5b815160058110611ee8575f80fd5b5f602082840312156122d5575f80fd5b5051919050565b80820281158282048414176106f1576106f16121f5565b5f8261230d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61231f61204d84612019565b9050828152838383011115612332575f80fd5b611ee8836020830184611eef565b5f82601f83011261234f575f80fd5b611ee883835160208501612312565b5f6020828403121561236e575f80fd5b815167ffffffffffffffff80821115612385575f80fd5b9083019060a08286031215612398575f80fd5b6123a0611fbf565b82516123ab81611f4e565b8152602083810151908201526040830151828111156123c8575f80fd5b8301601f810187136123d8575f80fd5b6123e787825160208401612312565b6040830152506060830151828111156123fe575f80fd5b61240a87828601612340565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff810361243b5761243b6121f5565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6124b060a0830186611f11565b82810360608401526124c28186611f11565b9150508260808301529695505050505050565b601f821115611269575f81815260208120601f850160051c810160208610156124fb5750805b601f850160051c820191505b8181101561251a57828155600101612507565b505050505050565b815167ffffffffffffffff81111561253c5761253c611fab565b6125508161254a84546121a2565b846124d5565b602080601f831160018114612583575f841561256c5750858301515b5f19600386901b1c1916600185901b17855561251a565b5f85815260208120601f198616915b828110156125b157888601518255948401946001909101908401612592565b50858210156125ce57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6125f06060830186611f11565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61263c60c0830186611f11565b828103608084015261264e8186611f11565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f90612684816004850160208701611eef565b919091016004019392505050565b5f82516126a3818460208701611eef565b9190910192915050565b828152604060208201525f61219a6040830184611f1156fea26469706673582212202ca19cce32dd00b1601e126976497ffdc7aa3e20ee2843c6bbb3d972b39a924364736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa264697066735822122069fe14d74514a993120c83a72a9219175ecc8ee4b23a827644bd433268df462264736f6c63430008140033","sourceMap":"129:523:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;175:475:18;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2304:32:30;;;2286:51;;2274:2;2259:18;175:475:18;2140:203:30;175:475:18;417:7;436:11;462:4;468:8;478:3;483:15;500:12;514:5;521;450:77;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;436:91;;556:1;537:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;572:42:18;;;-1:-1:-1;;;;;4046:15:30;;4028:34;;603:10:18;4093:2:30;4078:18;;4071:43;572:42:18;;3963:18:30;572:42:18;;;;;;;639:3;175:475;-1:-1:-1;;;;;;;;175:475:18:o;-1:-1:-1:-;;;;;;;;:::o;196:127:30:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:719;371:5;424:3;417:4;409:6;405:17;401:27;391:55;;442:1;439;432:12;391:55;478:6;465:20;504:18;541:2;537;534:10;531:36;;;547:18;;:::i;:::-;622:2;616:9;590:2;676:13;;-1:-1:-1;;672:22:30;;;696:2;668:31;664:40;652:53;;;720:18;;;740:22;;;717:46;714:72;;;766:18;;:::i;:::-;806:10;802:2;795:22;841:2;833:6;826:18;887:3;880:4;875:2;867:6;863:15;859:26;856:35;853:55;;;904:1;901;894:12;853:55;968:2;961:4;953:6;949:17;942:4;934:6;930:17;917:54;1015:1;1008:4;1003:2;995:6;991:15;987:26;980:37;1035:6;1026:15;;;;;;328:719;;;;:::o;1052:173::-;1120:20;;-1:-1:-1;;;;;1169:31:30;;1159:42;;1149:70;;1215:1;1212;1205:12;1149:70;1052:173;;;:::o;1230:905::-;1363:6;1371;1379;1387;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1521:9;1508:23;1550:18;1591:2;1583:6;1580:14;1577:34;;;1607:1;1604;1597:12;1577:34;1630:50;1672:7;1663:6;1652:9;1648:22;1630:50;:::i;:::-;1620:60;;1733:2;1722:9;1718:18;1705:32;1689:48;;1762:2;1752:8;1749:16;1746:36;;;1778:1;1775;1768:12;1746:36;;1801:52;1845:7;1834:8;1823:9;1819:24;1801:52;:::i;:::-;1791:62;;;1872:38;1906:2;1895:9;1891:18;1872:38;:::i;:::-;1862:48;;1929:38;1963:2;1952:9;1948:18;1929:38;:::i;:::-;1919:48;;2014:3;2003:9;1999:19;1986:33;1976:43;;2038:39;2072:3;2061:9;2057:19;2038:39;:::i;:::-;2028:49;;2124:3;2113:9;2109:19;2096:33;2086:43;;1230:905;;;;;;;;;;:::o;2348:423::-;2390:3;2428:5;2422:12;2455:6;2450:3;2443:19;2480:1;2490:162;2504:6;2501:1;2498:13;2490:162;;;2566:4;2622:13;;;2618:22;;2612:29;2594:11;;;2590:20;;2583:59;2519:12;2490:162;;;2494:3;2697:1;2690:4;2681:6;2676:3;2672:16;2668:27;2661:38;2760:4;2753:2;2749:7;2744:2;2736:6;2732:15;2728:29;2723:3;2719:39;2715:50;2708:57;;;2348:423;;;;:::o;2776:808::-;3113:3;3102:9;3095:22;3076:4;3140:46;3181:3;3170:9;3166:19;3158:6;3140:46;:::i;:::-;3234:9;3226:6;3222:22;3217:2;3206:9;3202:18;3195:50;3262:33;3288:6;3280;3262:33;:::i;:::-;-1:-1:-1;;;;;3369:15:30;;;3364:2;3349:18;;3342:43;3421:15;;;3416:2;3401:18;;3394:43;-1:-1:-1;;3468:3:30;3453:19;;3446:35;;;;3518:15;;3322:3;3497:19;;3490:44;3565:3;3550:19;3543:35;;;;3254:41;2776:808;-1:-1:-1;;2776:808:30:o;3589:222::-;3654:9;;;3675:10;;;3672:133;;;3727:10;3722:3;3718:20;3715:1;3708:31;3762:4;3759:1;3752:15;3790:4;3787:1;3780:15;3672:133;3589:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREDAO(string,string,address,address,uint256,address,uint256)":"b8f479e5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposalFactory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proposalCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"produceOGREDAO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREDAOFactory.sol\":\"OGREDAOFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0\",\"dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREDAOFactory.sol\":{\"keccak256\":\"0x067506ff3202f845b76f4ce15d86efbb24ea307944bbaab616869d87e01f67f8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0cf99767b61decc9d35a8fe3f513027f09992669668527950496ccb086d9d80a\",\"dweb:/ipfs/QmerrceRn7pkCM1gEaniJviZRGDSSwKmjowz6iompM4Wja\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645\",\"dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d\",\"dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"proposalFactory","type":"address"},{"internalType":"uint256","name":"proposalCost","type":"uint256"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"delay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREDAO","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREDAOFactory.sol":"OGREDAOFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0x78c9638f49a94364668c17108421d4bc6c956532cc3f7e4e1785b2efe034f75d","urls":["bzz-raw://35bfeb0ad0ddb692c1f40933994353f0381d31dde6500335d0dc9b133f30f6c0","dweb:/ipfs/QmTcjgcnhT6ZC1cKFS4q3MvPFKghQN5rjc2UA9y4HwW2Xm"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREDAOFactory.sol":{"keccak256":"0x067506ff3202f845b76f4ce15d86efbb24ea307944bbaab616869d87e01f67f8","urls":["bzz-raw://0cf99767b61decc9d35a8fe3f513027f09992669668527950496ccb086d9d80a","dweb:/ipfs/QmerrceRn7pkCM1gEaniJviZRGDSSwKmjowz6iompM4Wja"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xb65345f04dc5742ed05b418a0d8fbef429f123990dfdf5a8193a024de9677eb5","urls":["bzz-raw://c293cee95f7b1ea0bb5e2382eba1a035bbdc38cccfff6eb85cac370c76a0c645","dweb:/ipfs/QmNVdQwirAmBCmYXuKWpsBmXR7MymS7xiCdzJCQ87MkcjE"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x695a7c375cac8dc711beb13f417dceae63f36cbca0bb4648e09219d4b13a4df8","urls":["bzz-raw://c8076321e3a8c065b75f5af9a095aa06ac7510bdc1d5e2c1768a9e766cdcf89d","dweb:/ipfs/QmZCB8bxyZ1vebHtro5fQyuEqJLhN11kRhM4qjMn9Tb8Yd"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":18} \ No newline at end of file diff --git a/out/OGREFactory.sol/OGREFactory.json b/out/OGREFactory.sol/OGREFactory.json deleted file mode 100644 index da7d24a..0000000 --- a/out/OGREFactory.sol/OGREFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"OGRE Factory Abstract Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/OGREFactory.sol\":\"OGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/OGREFactory.sol":"OGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/OGREMarket.sol/OGREMarket.json b/out/OGREMarket.sol/OGREMarket.json deleted file mode 100644 index 66100a9..0000000 --- a/out/OGREMarket.sol/OGREMarket.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"admin_","type":"address","internalType":"address"},{"name":"orderFee_","type":"uint256","internalType":"uint256"},{"name":"feeRecipient_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowedContracts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calcItemHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"calcOrderHash","inputs":[{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"cancelOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidOrder","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"listedItems","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minOrderDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orderExists","inputs":[{"name":"orderHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"orderFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"orders","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","internalType":"address"},{"name":"erc721Address","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc20Address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setContractAllowed","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOrderFee","inputs":[{"name":"newOrderFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AllowlistUpdated","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeRecipientUpdated","inputs":[{"name":"newFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketCreated","inputs":[{"name":"daoAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OrderCancelled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OrderCreated","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum Enums.OrderType"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"erc721Address","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc20Address","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFeeUpdated","inputs":[{"name":"newOrderFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OrderFulfilled","inputs":[{"name":"orderHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6","sourceMap":"541:8157:12:-:0;;;1633:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:8;2061:21;;-1:-1:-1;;;;;1734:24:12;;;;1768:42;-1:-1:-1;;;;;;;;;;;1803:6:12;1768:10;:42::i;:::-;-1:-1:-1;1839:10:12;;1825:25;;-1:-1:-1;;;;;805:32:30;;;787:51;;1825:25:12;;775:2:30;760:18;1825:25:12;;;;;;;1860:22;1872:9;1860:11;:22::i;:::-;1892:30;1908:13;1892:15;:30::i;:::-;1633:343;;;;541:8157;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;2027:164:12:-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:27;2464:10:0;:16::i;:::-;2119:8:12::1;:22:::0;;;2156:28:::1;::::0;995:25:30;;;2156:28:12::1;::::0;983:2:30;968:18;2156:28:12::1;;;;;;;;2027:164:::0;;:::o;2197:293::-;-1:-1:-1;;;;;;;;;;;2464:16:0;441:25:27;2464:10:0;:16::i;:::-;-1:-1:-1;;;;;2305:31:12;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:12;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:12;;1233:2:30;2297:95:12::1;::::0;::::1;1215:21:30::0;1272:2;1252:18;;;1245:30;-1:-1:-1;;;1291:18:30;;;1284:45;1346:18;;2297:95:12::1;;;;;;;;;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:12::1;-1:-1:-1::0;;;;;2402:30:12;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;787:51:30;;;2447:36:12::1;::::0;775:2:30;760:18;2447:36:12::1;641:203:30::0;3199:103:0;3265:30;3276:4;735:10:6;3265::0;:30::i;:::-;3199:103;:::o;3432:197::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;1567:32:30;;3565:47:0;;;1549:51:30;1616:18;;;1609:34;;;1522:18;;3565:47:0;1375:274:30;3515:108:0;3432:197;;:::o;14:177:30:-;93:13;;-1:-1:-1;;;;;135:31:30;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:440::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;558:2;547:9;543:18;537:25;527:35;;581:49;626:2;615:9;611:18;581:49;:::i;:::-;571:59;;196:440;;;;;;;:::o;1375:274::-;541:8157:12;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c63430008140033","sourceMap":"541:8157:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:30;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;677:23:12;;;;;;;;;;;;;;;;;;;643:25:30;;;631:2;616:18;677:23:12;497:177:30;602:35:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;843:32:30;;;825:51;;813:2;798:18;602:35:12;679:203:30;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;7628:992:12;;;;;;;;;;-1:-1:-1;7628:992:12;;;;;:::i;:::-;;:::i;7377:132::-;;;;;;;;;;-1:-1:-1;7377:132:12;;;;;:::i;:::-;7438:4;7461:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7461:25:12;:41;;;7377:132;4226:136:0;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;644:27:12:-;;;;;;;;;;-1:-1:-1;644:27:12;;;;-1:-1:-1;;;;;644:27:12;;;785:48;;;;;;;;;;-1:-1:-1;785:48:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;3119:3295;;;;;;:::i;:::-;;:::i;839:46::-;;;;;;;;;;-1:-1:-1;839:46:12;;;;;:::i;:::-;;;;;;;;;;;;;;6420:509;;;;;;;;;;-1:-1:-1;6420:509:12;;;;;:::i;:::-;;:::i;2775:293::-;;;;;;;;;;-1:-1:-1;2775:293:12;;;;;:::i;:::-;;:::i;2854:136:0:-;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;915:47:12:-;;;;;;;;;;-1:-1:-1;915:47:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;915:47:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2187:49:0:-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;2027:164:12;;;;;;;;;;-1:-1:-1;2027:164:12;;;;;:::i;:::-;;:::i;7210:161::-;;;;;;;;;;-1:-1:-1;7210:161:12;;;;;:::i;:::-;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;2197:293:12:-;;;;;;;;;;-1:-1:-1;2197:293:12;;;;;:::i;:::-;;:::i;706:31::-;;;;;;;;;;;;;;;;6982:222;;;;;;;;;;-1:-1:-1;6982:222:12;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:9;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;7628:992:12:-;7690:4;7710:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;7710:25:12;7706:59;;-1:-1:-1;7760:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7706:59::-;7780:49;7797:17;;;:6;:17;;;;;;;;:31;;;-1:-1:-1;;;;;7797:31:12;7780:49;;:16;:49;;;;;;;;7775:68;;-1:-1:-1;7838:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7775:68::-;7858:48;7875:17;;;:6;:17;;;;;;;;:30;;;-1:-1:-1;;;;;7875:30:12;7858:48;;:16;:48;;;;;;;;7853:67;;-1:-1:-1;7915:5:12;;7628:992;-1:-1:-1;7628:992:12:o;7853:67::-;7939:22;7972:17;;;:6;:17;;;;;;;:31;;;;8071:25;;8041;;;;;8018:49;;-1:-1:-1;;;8018:49:12;;;;;643:25:30;;;;-1:-1:-1;;;;;7972:31:12;;;;;8071:25;;;;;7972:31;;8018:22;;616:18:30;;8018:49:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8018:78:12;;8014:96;;-1:-1:-1;8105:5:12;;7628:992;-1:-1:-1;;7628:992:12:o;8014:96::-;8151:17;;;;:6;:17;;;;;;;:25;;;8124:53;;-1:-1:-1;;;8124:53:12;;8189:4;;-1:-1:-1;;;;;8124:26:12;;;;;:53;;;;643:25:30;;;631:2;616:18;;497:177;8124:53:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8124:70:12;;;:148;;;-1:-1:-1;8231:17:12;;;;:6;:17;;;;;;;:25;8199:73;;-1:-1:-1;;;8199:73:12;;8231:25;;;;-1:-1:-1;;;;;8231:25:12;;;8199:73;;;5572:34:30;8266:4:12;5622:18:30;;;5615:43;8199:31:12;;;;;5507:18:30;;8199:73:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8198:74;8124:148;8120:166;;;-1:-1:-1;8281:5:12;;7628:992;-1:-1:-1;;7628:992:12:o;8120:166::-;8305:20;8335:17;;;:6;:17;;;;;;;:30;;;;8433:24;;;;;8404:25;;8380:50;;-1:-1:-1;;;8380:50:12;;8335:30;8404:25;;;-1:-1:-1;;;;;8404:25:12;;;8380:50;;;825:51:30;;;;8335:30:12;;;;8380:23;;798:18:30;;8380:50:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;8376:95;;;-1:-1:-1;8466:5:12;;7628:992;-1:-1:-1;;;7628:992:12:o;8376:95::-;8553:17;;;;:6;:17;;;;;;;:24;;;;;8509:25;;8485:65;;-1:-1:-1;;;8485:65:12;;-1:-1:-1;;;;;8509:25:12;;;;;;8485:65;;;5572:34:30;;;;8544:4:12;5622:18:30;;;5615:43;8553:24:12;;8485:23;;;;;5507:18:30;;8485:65:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;8481:110;;;-1:-1:-1;8586:5:12;;7628:992;-1:-1:-1;;;7628:992:12:o;8481:110::-;-1:-1:-1;8609:4:12;;7628:992;-1:-1:-1;;;7628:992:12:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;-1:-1:-1;;;;;5421:34:0;;735:10:6;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;3119:3295:12:-;2500:21:8;:19;:21::i;:::-;3304:19:12::1;3291:9;:32;;;;;;;;:::i;:::-;;:68;;;-1:-1:-1::0;3340:19:12::1;3327:9;:32;;;;;;;;:::i;:::-;;3291:68;3283:99;;;::::0;-1:-1:-1;;;3283:99:12;;6310:2:30;3283:99:12::1;::::0;::::1;6292:21:30::0;6349:2;6329:18;;;6322:30;-1:-1:-1;;;6368:18:30;;;6361:48;6426:18;;3283:99:12::1;;;;;;;;;-1:-1:-1::0;;;;;3400:31:12;::::1;;::::0;;;:16:::1;:31;::::0;;;;;::::1;;3392:71;;;::::0;-1:-1:-1;;;3392:71:12;;6657:2:30;3392:71:12::1;::::0;::::1;6639:21:30::0;6696:2;6676:18;;;6669:30;6735:29;6715:18;;;6708:57;6782:18;;3392:71:12::1;6455:351:30::0;3392:71:12::1;-1:-1:-1::0;;;;;3481:30:12;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;3473:69;;;::::0;-1:-1:-1;;;3473:69:12;;7013:2:30;3473:69:12::1;::::0;::::1;6995:21:30::0;7052:2;7032:18;;;7025:30;7091:28;7071:18;;;7064:56;7137:18;;3473:69:12::1;6811:350:30::0;3473:69:12::1;3569:1;3560:6;:10;3552:37;;;::::0;-1:-1:-1;;;3552:37:12;;7368:2:30;3552:37:12::1;::::0;::::1;7350:21:30::0;7407:2;7387:18;;;7380:30;-1:-1:-1;;;7426:18:30;;;7419:44;7480:18;;3552:37:12::1;7166:338:30::0;3552:37:12::1;3690:17;3710:59;3724:13;3739:7;3748:12;3762:6;3710:13;:59::i;:::-;3690:79;;3779:16;3798:36;3811:13;3826:7;3798:12;:36::i;:::-;3779:55:::0;-1:-1:-1;3969:12:12;4025:13;3939:20:::1;4053:9;:32;;;;;;;;:::i;:::-;::::0;4049:599:::1;;4142:1;4109:21:::0;;;:11:::1;:21;::::0;;;;;:35;4101:79:::1;;;::::0;-1:-1:-1;;;4101:79:12;;7711:2:30;4101:79:12::1;::::0;::::1;7693:21:30::0;7750:2;7730:18;;;7723:30;7789:33;7769:18;;;7762:61;7840:18;;4101:79:12::1;7509:355:30::0;4101:79:12::1;4202:31;::::0;-1:-1:-1;;;4202:31:12;;::::1;::::0;::::1;643:25:30::0;;;4237:10:12::1;::::0;-1:-1:-1;;;;;4202:22:12;::::1;::::0;::::1;::::0;616:18:30;;4202:31:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4202:45:12::1;;4194:72;;;::::0;-1:-1:-1;;;4194:72:12;;8071:2:30;4194:72:12::1;::::0;::::1;8053:21:30::0;8110:2;8090:18;;;8083:30;-1:-1:-1;;;8129:18:30;;;8122:44;8183:18;;4194:72:12::1;7869:338:30::0;4194:72:12::1;4288:35;::::0;-1:-1:-1;;;4288:35:12;;::::1;::::0;::::1;643:25:30::0;;;4335:4:12::1;::::0;-1:-1:-1;;;;;4288:26:12;::::1;::::0;::::1;::::0;616:18:30;;4288:35:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4288:52:12::1;;:114;;;-1:-1:-1::0;4344:58:12::1;::::0;-1:-1:-1;;;4344:58:12;;4376:10:::1;4344:58;::::0;::::1;5572:34:30::0;4396:4:12::1;5622:18:30::0;;;5615:43;-1:-1:-1;;;;;4344:31:12;::::1;::::0;::::1;::::0;5507:18:30;;4344:58:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4280:139;;;::::0;-1:-1:-1;;;4280:139:12;;8414:2:30;4280:139:12::1;::::0;::::1;8396:21:30::0;8453:2;8433:18;;;8426:30;-1:-1:-1;;;8472:18:30;;;8465:42;8524:18;;4280:139:12::1;8212:336:30::0;4280:139:12::1;4049:599;;;4458:35;::::0;-1:-1:-1;;;4458:35:12;;4482:10:::1;4458:35;::::0;::::1;825:51:30::0;4497:6:12;;-1:-1:-1;;;;;4458:23:12;::::1;::::0;::::1;::::0;798:18:30;;4458:35:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4450:78;;;::::0;-1:-1:-1;;;4450:78:12;;8755:2:30;4450:78:12::1;::::0;::::1;8737:21:30::0;8794:2;8774:18;;;8767:30;-1:-1:-1;;;8813:18:30;;;8806:50;8873:18;;4450:78:12::1;8553:344:30::0;4450:78:12::1;4550:50;::::0;-1:-1:-1;;;4550:50:12;;4574:10:::1;4550:50;::::0;::::1;5572:34:30::0;4594:4:12::1;5622:18:30::0;;;5615:43;4604:6:12;;-1:-1:-1;;;;;4550:23:12;::::1;::::0;::::1;::::0;5507:18:30;;4550:50:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;4542:95;;;::::0;-1:-1:-1;;;4542:95:12;;9104:2:30;4542:95:12::1;::::0;::::1;9086:21:30::0;9143:2;9123:18;;;9116:30;-1:-1:-1;;;9162:18:30;;;9155:52;9224:18;;4542:95:12::1;8902:346:30::0;4542:95:12::1;4679:8;;4666:9;:21;4658:51;;;::::0;-1:-1:-1;;;4658:51:12;;9455:2:30;4658:51:12::1;::::0;::::1;9437:21:30::0;9494:2;9474:18;;;9467:30;-1:-1:-1;;;9513:18:30;;;9506:47;9570:18;;4658:51:12::1;9253:341:30::0;4658:51:12::1;4741:12;::::0;4766:8:::1;::::0;4741:38:::1;::::0;4720:15:::1;::::0;-1:-1:-1;;;;;4741:12:12::1;::::0;4766:8;4720:15;4741:38;4720:15;4741:38;4766:8;4741:12;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:60;;;4797:10;4789:48;;;::::0;-1:-1:-1;;;4789:48:12;;10011:2:30;4789:48:12::1;::::0;::::1;9993:21:30::0;10050:2;10030:18;;;10023:30;10089:27;10069:18;;;10062:55;10134:18;;4789:48:12::1;9809:349:30::0;4789:48:12::1;4916:3;4879:17:::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;4879:25:12::1;4875:1533;;4936:26;4965:192;;;;;;;;4996:9;4965:192;;;;;;;;:::i;:::-;::::0;;5023:10:::1;4965:192;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;4965:192:12;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;-1:-1:-1;5171:17:12;;;:6:::1;:17:::0;;;;:25;;;;4936:221;;-1:-1:-1;4936:221:12;;5171:17;;-1:-1:-1;;5171:25:12::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5171:25:12::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5171:25:12;;::::1;;;-1:-1:-1::0;;;;;;5171:25:12;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5171:25:12;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;5214:9;:32;;;;;;;;:::i;:::-;::::0;5210:104:::1;;5266:21;::::0;;;:11:::1;:21;::::0;;;;:33;;;5210:104:::1;5345:9;5332:92;5356:9;5367:10;5379:13;5394:7;5403:12;5417:6;5332:92;;;;;;;;;;;:::i;:::-;;;;;;;;4922:513;4875:1533;;;5530:9;5499:40;;;;;;;;:::i;:::-;:17;::::0;;;:6:::1;:17;::::0;;;;:27;::::1;;::::0;:40;::::1;;;;;;:::i;:::-;::::0;5491:73:::1;;;::::0;-1:-1:-1;;;5491:73:12;;10365:2:30;5491:73:12::1;::::0;::::1;10347:21:30::0;10404:2;10384:18;;;10377:30;-1:-1:-1;;;10423:18:30;;;10416:50;10483:18;;5491:73:12::1;10163:344:30::0;5491:73:12::1;5672:20;::::0;;5743:9:::1;:32;;;;;;;;:::i;:::-;::::0;5739:274:::1;;-1:-1:-1::0;;5852:17:12::1;::::0;;;:6:::1;:17;::::0;;;;:25;5810:10:::1;::::0;5852:25:::1;::::0;::::1;-1:-1:-1::0;;;;;5852:25:12::1;5739:274;;;-1:-1:-1::0;;5931:17:12::1;::::0;;;:6:::1;:17;::::0;;;;:25;::::1;::::0;::::1;-1:-1:-1::0;;;;;5931:25:12::1;5988:10;5739:274;6034:21;::::0;;;:11:::1;:21;::::0;;;;;;;6027:28;;;6076:17;;;:6:::1;:17:::0;;;;;;6069:24;;-1:-1:-1;;;;;;6069:24:12;;;-1:-1:-1;6069:24:12;::::1;::::0;;-1:-1:-1;;;;;;6069:24:12;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;6158:61;-1:-1:-1;;;6158:61:12;;-1:-1:-1;;;;;10770:15:30;;;6158:61:12;;::::1;10752:34:30::0;;;;10822:15;;;10802:18;;;10795:43;10854:18;;;10847:34;;;6158:26:12;;::::1;::::0;::::1;::::0;10687:18:30;;6158:61:12::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6285:67:12::1;::::0;-1:-1:-1;;;6285:67:12;;-1:-1:-1;;;;;10770:15:30;;;6285:67:12::1;::::0;::::1;10752:34:30::0;10822:15;;;10802:18;;;10795:43;10854:18;;;10847:34;;;6285:31:12;::::1;::::0;::::1;::::0;10687:18:30;;6285:67:12::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6372:25:12::1;::::0;6387:9;;-1:-1:-1;6372:25:12::1;::::0;-1:-1:-1;6372:25:12;;::::1;5441:967;;4875:1533;3273:3141;;;;;2542:20:8::0;1857:1;3068:21;;2888:208;2542:20;3119:3295:12;;;;;:::o;6420:509::-;6522:3;6485:17;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6485:25:12;6477:69;;;;-1:-1:-1;;;6477:69:12;;11094:2:30;6477:69:12;;;11076:21:30;11133:2;11113:18;;;11106:30;-1:-1:-1;;;11152:18:30;;;11145:45;11207:18;;6477:69:12;10892:339:30;6477:69:12;6564:17;;;;:6;:17;;;;;:25;;;;-1:-1:-1;;;;;6564:25:12;6593:10;6564:39;6556:69;;;;-1:-1:-1;;;6556:69:12;;11438:2:30;6556:69:12;;;11420:21:30;11477:2;11457:18;;;11450:30;-1:-1:-1;;;11496:18:30;;;11489:47;11553:18;;6556:69:12;11236:341:30;6556:69:12;6670:19;6639:17;;;:6;:17;;;;;:27;;;;:50;;;;;;;:::i;:::-;;6635:214;;6705:16;6737:17;;;:6;:17;;;;;:31;;;;6770:25;;;;;6724:72;;-1:-1:-1;;;;;6737:31:12;;6724:12;:72::i;:::-;6817:21;;;;:11;:21;;;;;6810:28;-1:-1:-1;6635:214:12;6865:17;;;;:6;:17;;;;;;6858:24;;-1:-1:-1;;;;;;6858:24:12;;;;;;;;-1:-1:-1;;;;;;6858:24:12;;;;;;;;;;;;;;;;;;;;;;;;;;;6897:25;6872:9;;6897:25;;;6420:509;:::o;2775:293::-;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2900:31:12;::::1;2892:59;;;::::0;-1:-1:-1;;;2892:59:12;;11784:2:30;2892:59:12::1;::::0;::::1;11766:21:30::0;11823:2;11803:18;;;11796:30;-1:-1:-1;;;11842:18:30;;;11835:45;11897:18;;2892:59:12::1;11582:339:30::0;2892:59:12::1;-1:-1:-1::0;;;;;2961:33:12;::::1;;::::0;;;:16:::1;:33;::::0;;;;;;;;:43;;-1:-1:-1;;2961:43:12::1;::::0;::::1;;::::0;;::::1;::::0;;;3019:42;;12094:51:30;;;12161:18;;;12154:50;3019:42:12::1;::::0;12067:18:30;3019:42:12::1;;;;;;;2775:293:::0;;;:::o;2854:136:0:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;2027:164:12:-;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;2119:8:12::1;:22:::0;;;2156:28:::1;::::0;643:25:30;;;2156:28:12::1;::::0;631:2:30;616:18;2156:28:12::1;;;;;;;;2027:164:::0;;:::o;7210:161::-;7329:34;;;-1:-1:-1;;;;;12407:32:30;;7329:34:12;;;12389:51:30;12456:18;;;12449:34;;;7293:7:12;;12362:18:30;;7329:34:12;;;;;;;;;;;;7319:45;;;;;;7312:52;;7210:161;;;;:::o;4642:138:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2197:293:12:-:0;441:25:27;2464:16:0;2475:4;2464:10;:16::i;:::-;-1:-1:-1;;;;;2305:31:12;::::1;::::0;;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;2340:32:12;::::1;2367:4;2340:32;;2305:67;2297:95;;;::::0;-1:-1:-1;;;2297:95:12;;11784:2:30;2297:95:12::1;::::0;::::1;11766:21:30::0;11823:2;11803:18;;;11796:30;-1:-1:-1;;;11842:18:30;;;11835:45;11897:18;;2297:95:12::1;11582:339:30::0;2297:95:12::1;2402:12;:30:::0;;-1:-1:-1;;;;;;2402:30:12::1;-1:-1:-1::0;;;;;2402:30:12;::::1;::::0;;::::1;::::0;;;2447:36:::1;::::0;825:51:30;;;2447:36:12::1;::::0;813:2:30;798:18;2447:36:12::1;679:203:30::0;6982:222:12;7140:56;;;-1:-1:-1;;;;;12781:15:30;;;7140:56:12;;;12763:34:30;12813:18;;;12806:34;;;12876:15;;;12856:18;;;12849:43;12908:18;;;12901:34;;;7104:7:12;;12697:19:30;;7140:56:12;;;;;;;;;;;;7130:67;;;;;;7123:74;;6982:222;;;;;;:::o;3199:103:0:-;3265:30;3276:4;735:10:6;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:6;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:6;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;2575:307:8;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:8;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;12407:32:30;;3565:47:0;;;12389:51:30;12456:18;;;12449:34;;;12362:18;;3565:47:0;12215:274:30;3515:108:0;3432:197;;:::o;14:286:30:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:30;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:30:o;887:180::-;946:6;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;-1:-1:-1;1038:23:30;;887:180;-1:-1:-1;887:180:30:o;1254:131::-;-1:-1:-1;;;;;1329:31:30;;1319:42;;1309:70;;1375:1;1372;1365:12;1390:315;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1571:9;1558:23;1548:33;;1631:2;1620:9;1616:18;1603:32;1644:31;1669:5;1644:31;:::i;:::-;1694:5;1684:15;;;1390:315;;;;;:::o;1710:247::-;1769:6;1822:2;1810:9;1801:7;1797:23;1793:32;1790:52;;;1838:1;1835;1828:12;1790:52;1877:9;1864:23;1896:31;1921:5;1896:31;:::i;1962:690::-;2071:6;2079;2087;2095;2103;2156:3;2144:9;2135:7;2131:23;2127:33;2124:53;;;2173:1;2170;2163:12;2124:53;2212:9;2199:23;2251:1;2244:5;2241:12;2231:40;;2267:1;2264;2257:12;2231:40;2290:5;-1:-1:-1;2347:2:30;2332:18;;2319:32;2360:33;2319:32;2360:33;:::i;:::-;2412:7;-1:-1:-1;2466:2:30;2451:18;;2438:32;;-1:-1:-1;2522:2:30;2507:18;;2494:32;2535:33;2494:32;2535:33;:::i;:::-;1962:690;;;;-1:-1:-1;1962:690:30;;2641:3;2626:19;2613:33;;1962:690;-1:-1:-1;;1962:690:30:o;2657:118::-;2743:5;2736:13;2729:21;2722:5;2719:32;2709:60;;2765:1;2762;2755:12;2780:382;2845:6;2853;2906:2;2894:9;2885:7;2881:23;2877:32;2874:52;;;2922:1;2919;2912:12;2874:52;2961:9;2948:23;2980:31;3005:5;2980:31;:::i;:::-;3030:5;-1:-1:-1;3087:2:30;3072:18;;3059:32;3100:30;3059:32;3100:30;:::i;3167:127::-;3228:10;3223:3;3219:20;3216:1;3209:31;3259:4;3256:1;3249:15;3283:4;3280:1;3273:15;3299:765;3585:3;3570:19;;3619:1;3608:13;;3598:144;;3664:10;3659:3;3655:20;3652:1;3645:31;3699:4;3696:1;3689:15;3727:4;3724:1;3717:15;3598:144;3751:25;;;-1:-1:-1;;;;;3850:15:30;;;3845:2;3830:18;;3823:43;3902:15;;;3897:2;3882:18;;3875:43;3949:2;3934:18;;3927:34;;;;3998:15;;;3992:3;3977:19;;3970:44;3803:3;4030:19;4023:35;3299:765;:::o;4254:315::-;4322:6;4330;4383:2;4371:9;4362:7;4358:23;4354:32;4351:52;;;4399:1;4396;4389:12;4351:52;4438:9;4425:23;4457:31;4482:5;4457:31;:::i;:::-;4507:5;4559:2;4544:18;;;;4531:32;;-1:-1:-1;;;4254:315:30:o;4574:525::-;4660:6;4668;4676;4684;4737:3;4725:9;4716:7;4712:23;4708:33;4705:53;;;4754:1;4751;4744:12;4705:53;4793:9;4780:23;4812:31;4837:5;4812:31;:::i;:::-;4862:5;-1:-1:-1;4914:2:30;4899:18;;4886:32;;-1:-1:-1;4970:2:30;4955:18;;4942:32;4983:33;4942:32;4983:33;:::i;:::-;4574:525;;;;-1:-1:-1;5035:7:30;;5089:2;5074:18;5061:32;;-1:-1:-1;;4574:525:30:o;5104:251::-;5174:6;5227:2;5215:9;5206:7;5202:23;5198:32;5195:52;;;5243:1;5240;5233:12;5195:52;5275:9;5269:16;5294:31;5319:5;5294:31;:::i;5669:245::-;5736:6;5789:2;5777:9;5768:7;5764:23;5760:32;5757:52;;;5805:1;5802;5795:12;5757:52;5837:9;5831:16;5856:28;5878:5;5856:28;:::i;5919:184::-;5989:6;6042:2;6030:9;6021:7;6017:23;6013:32;6010:52;;;6058:1;6055;6048:12;6010:52;-1:-1:-1;6081:16:30;;5919:184;-1:-1:-1;5919:184:30:o","linkReferences":{},"immutableReferences":{"1883":[{"start":424,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowedContracts(address)":"51e0e26b","calcItemHash(address,uint256)":"c52b8d61","calcOrderHash(address,uint256,address,uint256)":"ff97be5c","cancelOrder(bytes32)":"7489ec23","createOrder(uint8,address,uint256,address,uint256)":"5a647c2f","daoAddress()":"2131c68c","feeRecipient()":"46904840","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isValidOrder(bytes32)":"24fc4fbd","listedItems(bytes32)":"6c054b1d","minOrderDuration()":"ff4217f1","orderExists(bytes32)":"2cb77e9f","orderFee()":"1392fb3e","orders(bytes32)":"9c3f1e90","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setContractAllowed(address,bool)":"7965d76b","setFeeRecipient(address)":"e74b981b","setOrderFee(uint256)":"c014930f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"MarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"OrderFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedContracts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"calcItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calcOrderHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createOrder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"isValidOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"listedItems\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minOrderDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orders\",\"outputs\":[{\"internalType\":\"enum Enums.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setContractAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newOrderFee\",\"type\":\"uint256\"}],\"name\":\"setOrderFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isValidOrder(bytes32)\":{\"notice\":\"Returns true if order is still valid. Non-existant orders are considered invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREMarket.sol\":\"OGREMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead\",\"dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"orderFee_","type":"uint256"},{"internalType":"address","name":"feeRecipient_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"bool","name":"allowed","type":"bool","indexed":false}],"type":"event","name":"AllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":false}],"type":"event","name":"FeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address","indexed":false}],"type":"event","name":"MarketCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true},{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"address","name":"erc721Address","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc20Address","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"OrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256","indexed":false}],"type":"event","name":"OrderFeeUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32","indexed":true}],"type":"event","name":"OrderFulfilled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowedContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcItemHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"calcOrderHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelOrder"},{"inputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isValidOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"listedItems","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minOrderDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orderExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"orders","outputs":[{"internalType":"enum Enums.OrderType","name":"orderType","type":"uint8"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"erc721Address","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setContractAllowed"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"uint256","name":"newOrderFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOrderFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"isValidOrder(bytes32)":{"notice":"Returns true if order is still valid. Non-existant orders are considered invalid."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREMarket.sol":"OGREMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0","urls":["bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead","dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/OGREMarketFactory.sol/OGREMarketFactory.json b/out/OGREMarketFactory.sol/OGREMarketFactory.json deleted file mode 100644 index 979a550..0000000 --- a/out/OGREMarketFactory.sol/OGREMarketFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREMarket","inputs":[{"name":"daoAddress","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506121168061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015c565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808585858560405161009090610134565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101a6565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a195945050505050565b611f15806101cc83390190565b80356001600160a01b0381168114610157575f80fd5b919050565b5f805f806080858703121561016f575f80fd5b61017885610141565b935061018660208601610141565b92506040850135915061019b60608601610141565b905092959194509250565b808201808211156101c557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a26469706673582212204d083a691053cc6248370b297c3f1e6ff5365e714c67e55be534aed05d7cb11d64736f6c63430008140033","sourceMap":"132:426:19:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806317350165146100385780637a39799e14610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b61006661006136600461015c565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808585858560405161009090610134565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103905ff0801580156100d1573d5f803e3d5ffd5b50905060015f808282546100e591906101a6565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a195945050505050565b611f15806101cc83390190565b80356001600160a01b0381168114610157575f80fd5b919050565b5f805f806080858703121561016f575f80fd5b61017885610141565b935061018660208601610141565b92506040850135915061019b60608601610141565b905092959194509250565b808201808211156101c557634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001f1538038062001f15833981016040819052620000339162000314565b600180556001600160a01b0384166080526200005e5f8051602062001ef583398151915284620000bf565b506080516040516001600160a01b0390911681527fb27af04ab132a0b6bba5de2a84bbbadcc31c20c33932936a992ae6ff951259c39060200160405180910390a1620000aa826200016b565b620000b581620001c2565b5050505062000365565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000162575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001193390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000165565b505f5b92915050565b5f8051602062001ef5833981519152620001858162000291565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b5f8051602062001ef5833981519152620001dc8162000291565b6001600160a01b03821615801590620001fe57506001600160a01b0382163014155b620002425760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc290602001620001b6565b6200029d8133620002a0565b50565b5f828152602081815260408083206001600160a01b038516845290915290205460ff16620002f45760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000239565b5050565b80516001600160a01b03811681146200030f575f80fd5b919050565b5f805f806080858703121562000328575f80fd5b6200033385620002f8565b93506200034360208601620002f8565b9250604085015191506200035a60608601620002f8565b905092959194509250565b608051611b776200037e5f395f6101a80152611b775ff3fe60806040526004361061013c575f3560e01c80636c054b1d116100b3578063c014930f1161006d578063c014930f14610414578063c52b8d6114610433578063d547741f14610452578063e74b981b14610471578063ff4217f114610490578063ff97be5c146104a5575f80fd5b80636c054b1d1461030a5780637489ec23146103355780637965d76b1461035457806391d14854146103735780639c3f1e9014610392578063a217fddf14610401575f80fd5b80632cb77e9f116101045780632cb77e9f1461022f5780632f2ff15d1461026a57806336568abe1461028b57806346904840146102aa57806351e0e26b146102c95780635a647c2f146102f7575f80fd5b806301ffc9a7146101405780631392fb3e146101745780632131c68c14610197578063248a9ca3146101e257806324fc4fbd14610210575b5f80fd5b34801561014b575f80fd5b5061015f61015a3660046118ea565b6104c4565b60405190151581526020015b60405180910390f35b34801561017f575f80fd5b5061018960035481565b60405190815260200161016b565b3480156101a2575f80fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101ed575f80fd5b506101896101fc366004611918565b5f9081526020819052604090206001015490565b34801561021b575f80fd5b5061015f61022a366004611918565b6104fa565b34801561023a575f80fd5b5061015f610249366004611918565b5f9081526007602052604090205461010090046001600160a01b0316151590565b348015610275575f80fd5b50610289610284366004611943565b610894565b005b348015610296575f80fd5b506102896102a5366004611943565b6108be565b3480156102b5575f80fd5b506002546101ca906001600160a01b031681565b3480156102d4575f80fd5b5061015f6102e3366004611971565b60056020525f908152604090205460ff1681565b61028961030536600461198c565b6108f6565b348015610315575f80fd5b50610189610324366004611918565b60066020525f908152604090205481565b348015610340575f80fd5b5061028961034f366004611918565b611309565b34801561035f575f80fd5b5061028961036e3660046119f3565b611495565b34801561037e575f80fd5b5061015f61038d366004611943565b61156a565b34801561039d575f80fd5b506103ef6103ac366004611918565b60076020525f90815260409020805460018201546002830154600384015460049094015460ff8416946001600160a01b0361010090950485169493841693169086565b60405161016b96959493929190611a33565b34801561040c575f80fd5b506101895f81565b34801561041f575f80fd5b5061028961042e366004611918565b611592565b34801561043e575f80fd5b5061018961044d366004611a85565b6115f9565b34801561045d575f80fd5b5061028961046c366004611943565b611635565b34801561047c575f80fd5b5061028961048b366004611971565b611659565b34801561049b575f80fd5b5061018960045481565b3480156104b0575f80fd5b506101896104bf366004611aaf565b611730565b5f6001600160e01b03198216637965db0b60e01b14806104f457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f8181526007602052604081205461010090046001600160a01b031661052157505f919050565b5f828152600760209081526040808320600101546001600160a01b03168352600590915290205460ff1661055657505f919050565b5f828152600760209081526040808320600301546001600160a01b03168352600590915290205460ff1661058b57505f919050565b5f82815260076020526040908190206001810154815460029092015492516331a9108f60e11b815260048101939093526001600160a01b039081169261010090920416908290636352211e90602401602060405180830381865afa1580156105f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106199190611af4565b6001600160a01b03161461062f57505f92915050565b5f838152600760205260409081902060020154905163020604bf60e21b815230916001600160a01b0384169163081812fc916106719160040190815260200190565b602060405180830381865afa15801561068c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b09190611af4565b6001600160a01b031614158061074657505f838152600760205260409081902054905163e985e9c560e01b81526101009091046001600160a01b03908116600483015230602483015282169063e985e9c590604401602060405180830381865afa158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611b0f565b155b1561075357505f92915050565b5f83815260076020526040908190206003810154600480830154925493516370a0823160e01b81526101009094046001600160a01b0390811691850191909152169182906370a0823190602401602060405180830381865afa1580156107bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107df9190611b2a565b10156107ee57505f9392505050565b5f848152600760205260409081902060048082015491549251636eb1769f60e11b81526001600160a01b03610100909404841691810191909152306024820152909183169063dd62ed3e90604401602060405180830381865afa158015610857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087b9190611b2a565b101561088a57505f9392505050565b5060019392505050565b5f828152602081905260409020600101546108ae8161177e565b6108b8838361178b565b50505050565b6001600160a01b03811633146108e75760405163334bd91960e11b815260040160405180910390fd5b6108f1828261181a565b505050565b6108fe611883565b5f85600181111561091157610911611a1f565b148061092e5750600185600181111561092c5761092c611a1f565b145b6109745760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206f72646572207479706560701b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526005602052604090205460ff166109db5760405162461bcd60e51b815260206004820152601b60248201527f65726337323120636f6e7472616374206e6f7420616c6c6f7765640000000000604482015260640161096b565b6001600160a01b0382165f9081526005602052604090205460ff16610a425760405162461bcd60e51b815260206004820152601a60248201527f657263323020636f6e7472616374206e6f7420616c6c6f776564000000000000604482015260640161096b565b5f8111610a825760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015260640161096b565b5f610a8f85858585611730565b90505f610a9c86866115f9565b905083865f896001811115610ab357610ab3611a1f565b03610ce8575f8381526006602052604090205415610b135760405162461bcd60e51b815260206004820152601f60248201527f61736b20616c72656164792065786973747320666f7220746f6b656e20696400604482015260640161096b565b6040516331a9108f60e11b81526004810188905233906001600160a01b03831690636352211e90602401602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611af4565b6001600160a01b031614610bc35760405162461bcd60e51b815260206004820152600e60248201526d3737ba1034ba32b69037bbb732b960911b604482015260640161096b565b60405163020604bf60e21b81526004810188905230906001600160a01b0383169063081812fc90602401602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611af4565b6001600160a01b03161480610ca8575060405163e985e9c560e01b81523360048201523060248201526001600160a01b0382169063e985e9c590604401602060405180830381865afa158015610c84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca89190611b0f565b610ce35760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b604482015260640161096b565b610e4a565b6040516370a0823160e01b815233600482015285906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611b2a565b1015610d955760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161096b565b604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190611b2a565b1015610e4a5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161096b565b6003543414610e8f5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206f726465722066656560781b604482015260640161096b565b6002546003546040515f926001600160a01b031691908381818185875af1925050503d805f8114610edb576040519150601f19603f3d011682016040523d82523d5f602084013e610ee0565b606091505b5050905080610f315760405162461bcd60e51b815260206004820152601960248201527f6f7264657220666565207472616e73666572206661696c656400000000000000604482015260640161096b565b5f8581526007602052604090205461010090046001600160a01b03166110b5575f6040518060c001604052808c6001811115610f6f57610f6f611a1f565b8152336020808301919091526001600160a01b038d8116604080850191909152606084018e9052908c16608084015260a09092018a90525f898152600790915220815181549293508392829060ff191660018381811115610fd257610fd2611a1f565b0217905550602082015181546001600160a01b0391821661010002610100600160a81b031990911617825560408301516001830180549183166001600160a01b031992831617905560608401516002840155608084015160038401805491909316911617905560a0909101516004909101555f8b600181111561105757611057611a1f565b0361106d575f8581526006602052604090208690555b857f90057d09aad40518e0b8e29bff49417f6526b715701bdc2509a596a7131e8bb78c338d8d8d8d6040516110a796959493929190611a33565b60405180910390a2506112f4565b8960018111156110c7576110c7611a1f565b5f8681526007602052604090205460ff1660018111156110e9576110e9611a1f565b0361112d5760405162461bcd60e51b81526020600482015260146024820152736f7264657220616c72656164792065786973747360601b604482015260640161096b565b5f80808c600181111561114257611142611a1f565b0361116c5750505f85815260076020526040902054339061010090046001600160a01b031661118c565b50505f8581526007602052604090205461010090046001600160a01b0316335b5f868152600660209081526040808320839055898352600790915280822080546001600160a81b03191681556001810180546001600160a01b0319908116909155600282018490556003820180549091169055600490810192909255516323b872dd60e01b81526001600160a01b03838116928201929092528382166024820152604481018a9052908616906323b872dd906064016020604051808303815f875af115801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190611b0f565b50604051632142170760e11b81526001600160a01b0383811660048301528281166024830152604482018c90528516906342842e0e906064015f604051808303815f87803b1580156112b1575f80fd5b505af11580156112c3573d5f803e3d5ffd5b50506040518992507f48224e98144457f56f46e15959589d8155a9e29ca79439ab9ba37f60561b5c5691505f90a250505b505050505061130260018055565b5050505050565b5f8181526007602052604090205461010090046001600160a01b03166113635760405162461bcd60e51b815260206004820152600f60248201526e1bdc99195c881b9bdd08199bdd5b99608a1b604482015260640161096b565b5f8181526007602052604090205461010090046001600160a01b031633146113c15760405162461bcd60e51b81526020600482015260116024820152703737ba1037b93232b91031b932b0ba37b960791b604482015260640161096b565b5f8181526007602052604081205460ff1660018111156113e3576113e3611a1f565b03611423575f8181526007602052604081206001810154600290910154611413916001600160a01b0316906115f9565b5f90815260066020526040812055505b5f8181526007602052604080822080546001600160a81b03191681556001810180546001600160a01b03199081169091556002820184905560038201805490911690556004018290555182917f5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d91a250565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66114bf8161177e565b6001600160a01b0383166115075760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b6001600160a01b0383165f81815260056020908152604091829020805460ff19168615159081179091558251938452908301527f13518841ff4d3053cb7703afaa39b145c6331829b982d42f4d4fd7568b2e8e24910160405180910390a1505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66115bc8161177e565b60038290556040518281527fafb0bb88fecd164b1de860279e72dadcc296d3b91d41cef931856f3416cdd1db906020015b60405180910390a15050565b604080516001600160a01b03841660208201529081018290525f9060600160405160208183030381529060405280519060200120905092915050565b5f8281526020819052604090206001015461164f8161177e565b6108b8838361181a565b7f07f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a66116838161177e565b6001600160a01b038216158015906116a457506001600160a01b0382163014155b6116e25760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161096b565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc2906020016115ed565b604080516001600160a01b0380871660208301529181018590529083166060820152608081018290525f9060a001604051602081830303815290604052805190602001209050949350505050565b61178881336118ad565b50565b5f611796838361156a565b611813575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117cb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016104f4565b505f6104f4565b5f611825838361156a565b15611813575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016104f4565b6002600154036118a657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6118b7828261156a565b6118e65760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161096b565b5050565b5f602082840312156118fa575f80fd5b81356001600160e01b031981168114611911575f80fd5b9392505050565b5f60208284031215611928575f80fd5b5035919050565b6001600160a01b0381168114611788575f80fd5b5f8060408385031215611954575f80fd5b8235915060208301356119668161192f565b809150509250929050565b5f60208284031215611981575f80fd5b81356119118161192f565b5f805f805f60a086880312156119a0575f80fd5b8535600281106119ae575f80fd5b945060208601356119be8161192f565b93506040860135925060608601356119d58161192f565b949793965091946080013592915050565b8015158114611788575f80fd5b5f8060408385031215611a04575f80fd5b8235611a0f8161192f565b91506020830135611966816119e6565b634e487b7160e01b5f52602160045260245ffd5b60c0810160028810611a5357634e487b7160e01b5f52602160045260245ffd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b5f8060408385031215611a96575f80fd5b8235611aa18161192f565b946020939093013593505050565b5f805f8060808587031215611ac2575f80fd5b8435611acd8161192f565b9350602085013592506040850135611ae48161192f565b9396929550929360600135925050565b5f60208284031215611b04575f80fd5b81516119118161192f565b5f60208284031215611b1f575f80fd5b8151611911816119e6565b5f60208284031215611b3a575f80fd5b505191905056fea2646970667358221220d6e911eed6b31d7065e200259ee1b87df2ce53455c185cf4e0db225ccac248b764736f6c6343000814003307f0a275418c306f0387154a78b34319faf760726ea38247d69f21825e8947a6a26469706673582212204d083a691053cc6248370b297c3f1e6ff5365e714c67e55be534aed05d7cb11d64736f6c63430008140033","sourceMap":"132:426:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;181:375:19;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;946:32:30;;;928:51;;916:2;901:18;181:375:19;782:203:30;181:375:19;340:7;359:14;391:10;403:5;410:8;420:12;376:57;;;;;:::i;:::-;-1:-1:-1;;;;;1277:15:30;;;1259:34;;1329:15;;;1324:2;1309:18;;1302:43;1376:2;1361:18;;1354:34;;;;1424:15;;;1419:2;1404:18;;1397:43;1208:3;1193:19;376:57:19;;;;;;;;;;;;;;;;;;;;;;;359:74;;462:1;443:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;478:42:19;;;-1:-1:-1;;;;;1908:15:30;;1890:34;;509:10:19;1955:2:30;1940:18;;1933:43;478:42:19;;1825:18:30;478:42:19;;;;;;;545:3;181:375;-1:-1:-1;;;;;181:375:19:o;-1:-1:-1:-;;;;;;;;:::o;196:173:30:-;264:20;;-1:-1:-1;;;;;313:31:30;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:403::-;460:6;468;476;484;537:3;525:9;516:7;512:23;508:33;505:53;;;554:1;551;544:12;505:53;577:29;596:9;577:29;:::i;:::-;567:39;;625:38;659:2;648:9;644:18;625:38;:::i;:::-;615:48;;710:2;699:9;695:18;682:32;672:42;;733:38;767:2;756:9;752:18;733:38;:::i;:::-;723:48;;374:403;;;;;;;:::o;1451:222::-;1516:9;;;1537:10;;;1534:133;;;1589:10;1584:3;1580:20;1577:1;1570:31;1624:4;1621:1;1614:15;1652:4;1649:1;1642:15;1534:133;1451:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREMarket(address,address,uint256,address)":"7a39799e","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"produceOGREMarket\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREMarketFactory.sol\":\"OGREMarketFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGREMarket.sol\":{\"keccak256\":\"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead\",\"dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREMarketFactory.sol\":{\"keccak256\":\"0x20107135a13456627dff54a9233844727f7f20a9ed045c878c9d5ab7be065995\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://080c0f0341b0f258bbeb4ac98cfdd0d8974f309a5039e7a30d50771e916ca749\",\"dweb:/ipfs/QmemLmcQZUw7UDKfLSocSvQj4PfaTQyVdujDjPz5uQtkqo\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171\",\"dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREMarket","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREMarketFactory.sol":"OGREMarketFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGREMarket.sol":{"keccak256":"0x819584a0b20ab7e050bcbb1fe0e2af2d77606dcab2763c97a4fb1fb4e96d68c0","urls":["bzz-raw://7f999314d539a6ed3659f6c75e7e8d21a3c9de3a619997c3ec3bbbcff96a4ead","dweb:/ipfs/QmRqxFZdAFLbEp52CtamiRUsi6Jd8TPWPSfGMbV8J8BGqW"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREMarketFactory.sol":{"keccak256":"0x20107135a13456627dff54a9233844727f7f20a9ed045c878c9d5ab7be065995","urls":["bzz-raw://080c0f0341b0f258bbeb4ac98cfdd0d8974f309a5039e7a30d50771e916ca749","dweb:/ipfs/QmemLmcQZUw7UDKfLSocSvQj4PfaTQyVdujDjPz5uQtkqo"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0xc378466bfd1a937758b06f01ac2c2c20688e9e50c40e05d8b0d894b01fd8f521","urls":["bzz-raw://df796f839802426aecf151bbdc2e7da18cac694b5bc46dda51bfcda83cfd0171","dweb:/ipfs/QmczMzGbsvwFLT868HzptSgfoFAESiv5W678urEkktAwYf"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":19} \ No newline at end of file diff --git a/out/OGREProposal.sol/OGREProposal.json b/out/OGREProposal.sol/OGREProposal.json deleted file mode 100644 index b5fe697..0000000 --- a/out/OGREProposal.sol/OGREProposal.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"proposalTitle_","type":"string","internalType":"string"},{"name":"daoAddress_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelProposal","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"vote","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureProposal","inputs":[{"name":"isRevotable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"endTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Structs.Action","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getActionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVote","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalTitle","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeAction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revotable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setActionReady","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProposalTitle","inputs":[{"name":"newProposalTitle","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newStartTime","type":"uint256","internalType":"uint256"},{"name":"newEndTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"status","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum Enums.ProposalStatus"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStatus","inputs":[{"name":"newStatus","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"voteCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"voteTotals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"direction","type":"uint8","internalType":"uint8"},{"name":"voted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalResults","inputs":[{"name":"quorumPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"supportPassed","type":"bool","indexed":false,"internalType":"bool"},{"name":"totalVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"quorumVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"supportVotesThreshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StatusUpdated","inputs":[{"name":"newStatus","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"vote","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"InvalidStatus","inputs":[{"name":"currentStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"},{"name":"requiredStatus","type":"uint8","internalType":"enum Enums.ProposalStatus"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033","sourceMap":"320:6986:13:-:0;;;2651:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2738:6;-1:-1:-1;;;;;1273:26:2;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:2;;1350:1;1322:31;;;1693:51:30;1666:18;;1322:31:2;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2842:13:13::1;:30;2858:14:::0;2842:13;:30:::1;:::i;:::-;-1:-1:-1::0;;;;;;2882:24:13;::::1;;::::0;2922:25:::1;::::0;::::1;::::0;::::1;::::0;4546:2:30;4528:21;;;4585:1;4565:18;;;4558:29;-1:-1:-1;;;4618:2:30;4603:18;;4596:38;4666:2;4651:18;;4344:331;2922:25:13::1;;;;;;;;2651:303:::0;;;320:6986;;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:30:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:30;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1214::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:30;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:30;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1487:49;1532:2;1521:9;1517:18;1487:49;:::i;:::-;1477:59;;328:1214;;;;;:::o;1755:380::-;1834:1;1830:12;;;;1877;;;1898:61;;1952:4;1944:6;1940:17;1930:27;;1898:61;2005:2;1997:6;1994:14;1974:18;1971:38;1968:161;;2051:10;2046:3;2042:20;2039:1;2032:31;2086:4;2083:1;2076:15;2114:4;2111:1;2104:15;1968:161;;1755:380;;;:::o;2266:545::-;2368:2;2363:3;2360:11;2357:448;;;2404:1;2429:5;2425:2;2418:17;2474:4;2470:2;2460:19;2544:2;2532:10;2528:19;2525:1;2521:27;2515:4;2511:38;2580:4;2568:10;2565:20;2562:47;;;-1:-1:-1;2603:4:30;2562:47;2658:2;2653:3;2649:12;2646:1;2642:20;2636:4;2632:31;2622:41;;2713:82;2731:2;2724:5;2721:13;2713:82;;;2776:17;;;2757:1;2746:13;2713:82;;;2717:3;;;2357:448;2266:545;;;:::o;2987:1352::-;3107:10;;-1:-1:-1;;;;;3129:30:30;;3126:56;;;3162:18;;:::i;:::-;3191:97;3281:6;3241:38;3273:4;3267:11;3241:38;:::i;:::-;3235:4;3191:97;:::i;:::-;3343:4;;3407:2;3396:14;;3424:1;3419:663;;;;4126:1;4143:6;4140:89;;;-1:-1:-1;4195:19:30;;;4189:26;4140:89;-1:-1:-1;;2944:1:30;2940:11;;;2936:24;2932:29;2922:40;2968:1;2964:11;;;2919:57;4242:81;;3389:944;;3419:663;2213:1;2206:14;;;2250:4;2237:18;;-1:-1:-1;;3455:20:30;;;3573:236;3587:7;3584:1;3581:14;3573:236;;;3676:19;;;3670:26;3655:42;;3768:27;;;;3736:1;3724:14;;;;3603:19;;3573:236;;;3577:3;3837:6;3828:7;3825:19;3822:201;;;3898:19;;;3892:26;-1:-1:-1;;3981:1:30;3977:14;;;3993:3;3973:24;3969:37;3965:42;3950:58;3935:74;;3822:201;-1:-1:-1;;;;;4069:1:30;4053:14;;;4049:22;4036:36;;-1:-1:-1;2987:1352:30:o;4344:331::-;320:6986:13;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033","sourceMap":"320:6986:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3732:344;;;;;;:::i;:::-;;:::i;:::-;;1060:21;;;;;-1:-1:-1;;;1060:21:13;;;;;;;;;527:14:30;;520:22;502:41;;490:2;475:18;1060:21:13;;;;;;;;1125:34;;;;;;;;;;;;;;;;:::i;859:35::-;;;;;;;;-1:-1:-1;;;;;1320:32:30;;;1302:51;;1290:2;1275:18;859:35:13;1156:203:30;4082:348:13;;;;;;:::i;:::-;;:::i;1408:22::-;;;;;;;;;1763:25:30;;;1751:2;1736:18;1408:22:13;1617:177:30;5436:83:13;;;:::i;5038:326::-;;;;;;:::i;:::-;;:::i;6185:1118::-;;;;;;:::i;:::-;;:::i;3182:172::-;;;;;;:::i;:::-;;:::i;:::-;;;4404:4:30;4392:17;;;4374:36;;4362:2;4347:18;3182:172:13;4232:184:30;4838:114:13;;;;;;:::i;:::-;;:::i;1540:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4984:4:30;4972:17;;;4954:36;;5033:14;;5026:22;5021:2;5006:18;;4999:50;4927:18;1540:45:13;4790:265:30;2960:94:13;3033:7;:14;2960:94;;2293:101:2;;;:::i;1338:24:13:-;;;;;;1474:28;;;;;;:::i;:::-;;:::i;1638:85:2:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;1638:85;;3472:254:13;;;:::i;5680:335::-;;;;;;:::i;:::-;;:::i;3060:116::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4577:136::-;;;;;;:::i;:::-;;:::i;1267:24::-;;;;;;1087:27;;;:::i;:::-;;;;;;;:::i;3360:106::-;;;;;;:::i;:::-;3416:4;3439:14;;;:5;:14;;;;;:20;;;;;;;3360:106;2543:215:2;;;;;;:::i;:::-;;:::i;3732:344:13:-;460:10;-1:-1:-1;;;;;474:10:13;460:24;;452:55;;;;-1:-1:-1;;;452:55:13;;7202:2:30;452:55:13;;;7184:21:30;7241:2;7221:18;;;7214:30;-1:-1:-1;;;7260:18:30;;;7253:48;7318:18;;452:55:13;;;;;;;;;4059:9:::1;4038:31;;;;;;;;;;:::i;:::-;4029:6;:40:::0;;-1:-1:-1;;4029:40:13::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;;;;3732:344:::0;:::o;4082:348::-;460:10;-1:-1:-1;;;;;474:10:13;460:24;;452:55;;;;-1:-1:-1;;;452:55:13;;7202:2:30;452:55:13;;;7184:21:30;7241:2;7221:18;;;7214:30;-1:-1:-1;;;7260:18:30;;;7253:48;7318:18;;452:55:13;7000:342:30;452:55:13;4414:9:::1;4391:7;4399:5;4391:14;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;:32;;;;4082:348:::0;;:::o;5436:83::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5499:7:::2;:13;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;5499:13:13;;;;;::::2;;::::0;;-1:-1:-1;;;;;;5499:13:13::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;;;;;;;;;;;5436:83::o:0;5038:326::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5287:43:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;5287:43:13;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;-1:-1:-1;5287:43:13;;;;;;5340:7:::2;:17:::0;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;5340:17:13::2;::::0;;;::::2;;::::0;;;;;;;;;5287:43;;;;5340:17;;;;;::::2;::::0;;::::2;:::i;:::-;-1:-1:-1::0;5340:17:13::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;::::2;:::i;:::-;;;;;;;;;;;;5155:209;5038:326:::0;;;;:::o;6185:1118::-;6417:29;6407:6;;;;:39;;;;;;;;:::i;:::-;;6399:65;;;;-1:-1:-1;;;6399:65:13;;12109:2:30;6399:65:13;;;12091:21:30;12148:2;12128:18;;;12121:30;-1:-1:-1;;;12167:18:30;;;12160:43;12220:18;;6399:65:13;11907:337:30;6399:65:13;6482:54;;-1:-1:-1;;;6482:54:13;;;;;12423:25:30;;;6525:10:13;12464:18:30;;;12457:60;6491:10:13;-1:-1:-1;;;;;6482:33:13;;;;12396:18:30;;6482:54:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6474:89;;;;-1:-1:-1;;;6474:89:13;;12980:2:30;6474:89:13;;;12962:21:30;13019:2;12999:18;;;12992:30;-1:-1:-1;;;13038:18:30;;;13031:52;13100:18;;6474:89:13;12778:346:30;6474:89:13;6589:1;6581:4;:9;;;;6573:73;;;;-1:-1:-1;;;6573:73:13;;13331:2:30;6573:73:13;;;13313:21:30;13370:2;13350:18;;;13343:30;13409:34;13389:18;;;13382:62;-1:-1:-1;;;13460:18:30;;;13453:49;13519:19;;6573:73:13;13129:415:30;6573:73:13;6683:9;;6664:15;:28;;6656:65;;;;-1:-1:-1;;;6656:65:13;;13751:2:30;6656:65:13;;;13733:21:30;13790:2;13770:18;;;13763:30;13829:26;13809:18;;;13802:54;13873:18;;6656:65:13;13549:348:30;6656:65:13;6758:7;;6739:15;:26;;6731:62;;;;-1:-1:-1;;;6731:62:13;;14104:2:30;6731:62:13;;;14086:21:30;14143:2;14123:18;;;14116:30;14182:25;14162:18;;;14155:53;14225:18;;6731:62:13;13902:347:30;6731:62:13;6843:14;;;;:5;:14;;;;;:20;;;;;;6838:329;;6892:1;6879:9;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;6927:1:13;;-1:-1:-1;6907:10:13;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6838:329:13;;-1:-1:-1;6838:329:13;;6989:9;;-1:-1:-1;;;6989:9:13;;;;6981:47;;;;-1:-1:-1;;;6981:47:13;;14718:2:30;6981:47:13;;;14700:21:30;14757:2;14737:18;;;14730:30;14796:27;14776:18;;;14769:55;14841:18;;6981:47:13;14516:349:30;6981:47:13;7053:14;;;;:5;:14;;;;;:24;7082:1;;7042:10;;7053:24;;7042:36;;;;;;;:::i;:::-;;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;7138:1:13;;-1:-1:-1;7118:10:13;:16;;;;;;;;;;:::i;:::-;;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6838:329:13;7177:14;;;;:5;:14;;;;;;;;;:31;;;;;;-1:-1:-1;;7218:27:13;;;;;;;;;7261:35;;7270:10;15201:51:30;;15268:18;;;15261:34;;;15311:18;;;15304:45;7261:35:13;;;;;;;15189:2:30;7261:35:13;;;6185:1118;;:::o;3182:172::-;3237:5;3262:14;;;:5;:14;;;;;:20;;;;;;3254:52;;;;-1:-1:-1;;;3254:52:13;;15562:2:30;3254:52:13;;;15544:21:30;15601:2;15581:18;;;15574:30;-1:-1:-1;;;15620:18:30;;;15613:49;15679:18;;3254:52:13;15360:343:30;3254:52:13;-1:-1:-1;3323:14:13;;;;:5;:14;;;;;:24;;;;3182:172::o;4838:114::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;4922:9:::2;:23:::0;;;::::2;;-1:-1:-1::0;;;4922:23:13::2;-1:-1:-1::0;;;;4922:23:13;;::::2;::::0;;;::::2;::::0;;4838:114::o;2293:101:2:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1474:28:13:-;;;;;;;;;;;;;;;-1:-1:-1;1474:28:13;:::o;3472:254::-;1531:13:2;:11;:13::i;:::-;3539:29:13::1;3529:6;::::0;::::1;;:39;::::0;::::1;;;;;;:::i;:::-;;3525:104;;3591:6;::::0;3577:52:::1;::::0;-1:-1:-1;;;3577:52:13;;::::1;::::0;3591:6:::1;;::::0;::::1;::::0;3577:52:::1;;;:::i;3525:104::-;3639:6;:39:::0;;-1:-1:-1;;3639:39:13::1;3648:30;3639:39;::::0;;3693:26:::1;::::0;;16245:2:30;16227:21;;;16284:1;16264:18;;;16257:29;-1:-1:-1;;;16302:18:30;;;16295:39;3693:26:13;;::::1;::::0;16366:2:30;3693:26:13;;;;;;::::1;3472:254::o:0;5680:335::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;5810:15:::2;5794:12;:31;;5786:76;;;::::0;-1:-1:-1;;;5786:76:13;;16582:2:30;5786:76:13::2;::::0;::::2;16564:21:30::0;;;16601:18;;;16594:30;16660:34;16640:18;;;16633:62;16712:18;;5786:76:13::2;16380:356:30::0;5786:76:13::2;5893:12;5880:10;:25;5872:71;;;::::0;-1:-1:-1;;;5872:71:13;;16943:2:30;5872:71:13::2;::::0;::::2;16925:21:30::0;16982:2;16962:18;;;16955:30;17021:34;17001:18;;;16994:62;-1:-1:-1;;;17072:18:30;;;17065:31;17113:19;;5872:71:13::2;16741:397:30::0;5872:71:13::2;5954:9;:24:::0;;;;5988:7:::2;:20:::0;5680:335::o;3060:116::-;3115:21;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3115:21:13;3155:7;3163:5;3155:14;;;;;;;;:::i;:::-;;;;;;;;;;;3148:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3148:21:13;-1:-1:-1;;;;;3148:21:13;-1:-1:-1;;;;;3148:21:13;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3060:116;;;:::o;4577:136::-;1531:13:2;:11;:13::i;:::-;632:9:13::1;::::0;:14;;:45:::1;;;668:9;;650:15;:27;632:45;624:81;;;;-1:-1:-1::0;;;624:81:13::1;;;;;;;:::i;:::-;4674:13:::2;:32;4690:16:::0;4674:13;:32:::2;:::i;:::-;;4577:136:::0;:::o;1087:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:215:2:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:2;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:2;;2700:1:::1;2672:31;::::0;::::1;1302:51:30::0;1275:18;;2672:31:2::1;1156:203:30::0;2623:91:2::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:2;735:10:6;1855:23:2;1851:101;;1901:40;;-1:-1:-1;;;1901:40:2;;735:10:6;1901:40:2;;;1302:51:30;1275:18;;1901:40:2;1156:203:30;2912:187:2;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:2;;;-1:-1:-1;;;;;;3020:17:2;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:156:30:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:182::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;324:27;341:9;324:27;:::i;:::-;314:37;175:182;-1:-1:-1;;;175:182:30:o;554:127::-;615:10;610:3;606:20;603:1;596:31;646:4;643:1;636:15;670:4;667:1;660:15;686:242;772:1;765:5;762:12;752:143;;817:10;812:3;808:20;805:1;798:31;852:4;849:1;842:15;880:4;877:1;870:15;752:143;904:18;;686:242::o;933:218::-;1084:2;1069:18;;1096:49;1073:9;1127:6;1096:49;:::i;:::-;933:218;;;;:::o;1364:248::-;1432:6;1440;1493:2;1481:9;1472:7;1468:23;1464:32;1461:52;;;1509:1;1506;1499:12;1461:52;-1:-1:-1;;1532:23:30;;;1602:2;1587:18;;;1574:32;;-1:-1:-1;1364:248:30:o;1799:173::-;1867:20;;-1:-1:-1;;;;;1916:31:30;;1906:42;;1896:70;;1962:1;1959;1952:12;1977:127;2038:10;2033:3;2029:20;2026:1;2019:31;2069:4;2066:1;2059:15;2093:4;2090:1;2083:15;2109:632;2174:5;2204:18;2245:2;2237:6;2234:14;2231:40;;;2251:18;;:::i;:::-;2326:2;2320:9;2294:2;2380:15;;-1:-1:-1;;2376:24:30;;;2402:2;2372:33;2368:42;2356:55;;;2426:18;;;2446:22;;;2423:46;2420:72;;;2472:18;;:::i;:::-;2512:10;2508:2;2501:22;2541:6;2532:15;;2571:6;2563;2556:22;2611:3;2602:6;2597:3;2593:16;2590:25;2587:45;;;2628:1;2625;2618:12;2587:45;2678:6;2673:3;2666:4;2658:6;2654:17;2641:44;2733:1;2726:4;2717:6;2709;2705:19;2701:30;2694:41;;;;2109:632;;;;;:::o;2746:222::-;2789:5;2842:3;2835:4;2827:6;2823:17;2819:27;2809:55;;2860:1;2857;2850:12;2809:55;2882:80;2958:3;2949:6;2936:20;2929:4;2921:6;2917:17;2882:80;:::i;2973:814::-;3078:6;3086;3094;3102;3155:3;3143:9;3134:7;3130:23;3126:33;3123:53;;;3172:1;3169;3162:12;3123:53;3195:29;3214:9;3195:29;:::i;:::-;3185:39;;3271:2;3260:9;3256:18;3243:32;3233:42;;3326:2;3315:9;3311:18;3298:32;3349:18;3390:2;3382:6;3379:14;3376:34;;;3406:1;3403;3396:12;3376:34;3429:50;3471:7;3462:6;3451:9;3447:22;3429:50;:::i;:::-;3419:60;;3532:2;3521:9;3517:18;3504:32;3488:48;;3561:2;3551:8;3548:16;3545:36;;;3577:1;3574;3567:12;3545:36;-1:-1:-1;3600:24:30;;3655:4;3647:13;;3643:27;-1:-1:-1;3633:55:30;;3684:1;3681;3674:12;3633:55;3707:74;3773:7;3768:2;3755:16;3750:2;3746;3742:11;3707:74;:::i;:::-;3697:84;;;2973:814;;;;;;;:::o;3792:250::-;3858:6;3866;3919:2;3907:9;3898:7;3894:23;3890:32;3887:52;;;3935:1;3932;3925:12;3887:52;3971:9;3958:23;3948:33;;4000:36;4032:2;4021:9;4017:18;4000:36;:::i;:::-;3990:46;;3792:250;;;;;:::o;4047:180::-;4106:6;4159:2;4147:9;4138:7;4134:23;4130:32;4127:52;;;4175:1;4172;4165:12;4127:52;-1:-1:-1;4198:23:30;;4047:180;-1:-1:-1;4047:180:30:o;4421:118::-;4507:5;4500:13;4493:21;4486:5;4483:32;4473:60;;4529:1;4526;4519:12;4544:241;4600:6;4653:2;4641:9;4632:7;4628:23;4624:32;4621:52;;;4669:1;4666;4659:12;4621:52;4708:9;4695:23;4727:28;4749:5;4727:28;:::i;5060:423::-;5102:3;5140:5;5134:12;5167:6;5162:3;5155:19;5192:1;5202:162;5216:6;5213:1;5210:13;5202:162;;;5278:4;5334:13;;;5330:22;;5324:29;5306:11;;;5302:20;;5295:59;5231:12;5202:162;;;5206:3;5409:1;5402:4;5393:6;5388:3;5384:16;5380:27;5373:38;5472:4;5465:2;5461:7;5456:2;5448:6;5444:15;5440:29;5435:3;5431:39;5427:50;5420:57;;;5060:423;;;;:::o;5488:764::-;5665:2;5654:9;5647:21;5740:1;5736;5731:3;5727:11;5723:19;5714:6;5708:13;5704:39;5699:2;5688:9;5684:18;5677:67;5798:2;5790:6;5786:15;5780:22;5775:2;5764:9;5760:18;5753:50;5628:4;5850:2;5842:6;5838:15;5832:22;5890:4;5885:2;5874:9;5870:18;5863:32;5918:52;5965:3;5954:9;5950:19;5936:12;5918:52;:::i;:::-;5904:66;;6019:2;6011:6;6007:15;6001:22;6092:2;6088:7;6076:9;6068:6;6064:22;6060:36;6054:3;6043:9;6039:19;6032:65;6120:41;6154:6;6138:14;6120:41;:::i;:::-;6106:55;;;6217:3;6209:6;6205:16;6199:23;6192:4;6181:9;6177:20;6170:53;6240:6;6232:14;;;5488:764;;;;:::o;6257:322::-;6326:6;6379:2;6367:9;6358:7;6354:23;6350:32;6347:52;;;6395:1;6392;6385:12;6347:52;6435:9;6422:23;6468:18;6460:6;6457:30;6454:50;;;6500:1;6497;6490:12;6454:50;6523;6565:7;6556:6;6545:9;6541:22;6523:50;:::i;:::-;6513:60;6257:322;-1:-1:-1;;;;6257:322:30:o;6584:220::-;6733:2;6722:9;6715:21;6696:4;6753:45;6794:2;6783:9;6779:18;6771:6;6753:45;:::i;6809:186::-;6868:6;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6960:29;6979:9;6960:29;:::i;7347:127::-;7408:10;7403:3;7399:20;7396:1;7389:31;7439:4;7436:1;7429:15;7463:4;7460:1;7453:15;7479:347;7681:2;7663:21;;;7720:2;7700:18;;;7693:30;7759:25;7754:2;7739:18;;7732:53;7817:2;7802:18;;7479:347::o;7831:127::-;7892:10;7887:3;7883:20;7880:1;7873:31;7923:4;7920:1;7913:15;7947:4;7944:1;7937:15;7963:380;8042:1;8038:12;;;;8085;;;8106:61;;8160:4;8152:6;8148:17;8138:27;;8106:61;8213:2;8205:6;8202:14;8182:18;8179:38;8176:161;;8259:10;8254:3;8250:20;8247:1;8240:31;8294:4;8291:1;8284:15;8322:4;8319:1;8312:15;8176:161;;7963:380;;;:::o;8474:545::-;8576:2;8571:3;8568:11;8565:448;;;8612:1;8637:5;8633:2;8626:17;8682:4;8678:2;8668:19;8752:2;8740:10;8736:19;8733:1;8729:27;8723:4;8719:38;8788:4;8776:10;8773:20;8770:47;;;-1:-1:-1;8811:4:30;8770:47;8866:2;8861:3;8857:12;8854:1;8850:20;8844:4;8840:31;8830:41;;8921:82;8939:2;8932:5;8929:13;8921:82;;;8984:17;;;8965:1;8954:13;8921:82;;;8925:3;;;8565:448;8474:545;;;:::o;9195:1352::-;9321:3;9315:10;9348:18;9340:6;9337:30;9334:56;;;9370:18;;:::i;:::-;9399:97;9489:6;9449:38;9481:4;9475:11;9449:38;:::i;:::-;9443:4;9399:97;:::i;:::-;9551:4;;9615:2;9604:14;;9632:1;9627:663;;;;10334:1;10351:6;10348:89;;;-1:-1:-1;10403:19:30;;;10397:26;10348:89;-1:-1:-1;;9152:1:30;9148:11;;;9144:24;9140:29;9130:40;9176:1;9172:11;;;9127:57;10450:81;;9597:944;;9627:663;8421:1;8414:14;;;8458:4;8445:18;;-1:-1:-1;;9663:20:30;;;9781:236;9795:7;9792:1;9789:14;9781:236;;;9884:19;;;9878:26;9863:42;;9976:27;;;;9944:1;9932:14;;;;9811:19;;9781:236;;;9785:3;10045:6;10036:7;10033:19;10030:201;;;10106:19;;;10100:26;-1:-1:-1;;10189:1:30;10185:14;;;10201:3;10181:24;10177:37;10173:42;10158:58;10143:74;;10030:201;-1:-1:-1;;;;;10277:1:30;10261:14;;;10257:22;10244:36;;-1:-1:-1;9195:1352:30:o;12528:245::-;12595:6;12648:2;12636:9;12627:7;12623:23;12619:32;12616:52;;;12664:1;12661;12654:12;12616:52;12696:9;12690:16;12715:28;12737:5;12715:28;:::i;14254:127::-;14315:10;14310:3;14306:20;14303:1;14296:31;14346:4;14343:1;14336:15;14370:4;14367:1;14360:15;14386:125;14451:9;;;14472:10;;;14469:36;;;14485:18;;:::i;14870:128::-;14937:9;;;14958:11;;;14955:37;;;14972:18;;:::i;15708:330::-;15904:2;15889:18;;15916:49;15893:9;15947:6;15916:49;:::i;:::-;15974:58;16028:2;16017:9;16013:18;16005:6;15974:58;:::i","linkReferences":{},"immutableReferences":{"2697":[{"start":461,"length":32},{"start":968,"length":32},{"start":1139,"length":32},{"start":1850,"length":32}]}},"methodIdentifiers":{"addAction(address,uint256,string,bytes)":"54eb23a9","cancelProposal()":"9070577f","castVote(uint256,uint8)":"56781388","configureProposal(bool)":"5b4d2f85","daoAddress()":"2131c68c","endTime()":"3197cbb6","getAction(uint256)":"b6e76873","getActionCount()":"5eecd218","getVote(uint256)":"5a55c1f0","hasVoted(uint256)":"ecca031f","owner()":"8da5cb5b","proposalTitle()":"e5045752","removeAction()":"421e4444","renounceOwnership()":"715018a6","revotable()":"0c8ba758","setActionReady(uint256,uint256)":"280b0c87","setProposalTitle(string)":"baceec7a","setVotingPeriod(uint256,uint256)":"a15a36c7","startTime()":"78e97925","status()":"200d2ed2","transferOwnership(address)":"f2fde38b","updateStatus(uint8)":"0b3af7f9","voteCount()":"c6384071","voteTotals(uint256)":"814a1d8e","votes(uint256)":"5df81330"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"proposalTitle_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"currentStatus\",\"type\":\"uint8\"},{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"requiredStatus\",\"type\":\"uint8\"}],\"name\":\"InvalidStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"quorumPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"supportPassed\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumVotesThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supportVotesThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalResults\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newStatus\",\"type\":\"string\"}],\"name\":\"StatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"addAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"vote\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isRevotable\",\"type\":\"bool\"}],\"name\":\"configureProposal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAction\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.Action\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getVote\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalTitle\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"setActionReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newProposalTitle\",\"type\":\"string\"}],\"name\":\"setProposalTitle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newEndTime\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Enums.ProposalStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voteTotals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"direction\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"params\":{\"quorumPassed\":\"true if proposal passed dao quorum threshold\",\"supportPassed\":\"true if proposal passed dao support threshold\",\"totalVotes\":\"final vote count on proposal\"}},\"StatusUpdated(string)\":{\"params\":{\"newStatus\":\"new status of proposal\"}},\"VoteCast(address,uint256,uint8)\":{\"params\":{\"tokenId\":\"id of nft token granting vote\",\"vote\":\"direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN)\",\"voter\":\"address that cast the vote\"}}},\"kind\":\"dev\",\"methods\":{\"addAction(address,uint256,string,bytes)\":{\"details\":\"pushes a new action to the end of the actions queue\"},\"castVote(uint256,uint8)\":{\"details\":\"casts a vote\",\"params\":{\"tokenId\":\"id of token casting votes\",\"vote\":\"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)\"}},\"configureProposal(bool)\":{\"details\":\"configures proposal settings\",\"params\":{\"isRevotable\":\"allows revoting on proposal if true\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeAction()\":{\"details\":\"removes action at end of action queue\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProposalTitle(string)\":{\"details\":\"sets proposal title\",\"params\":{\"newProposalTitle\":\"new proposal title\"}},\"setVotingPeriod(uint256,uint256)\":{\"details\":\"sets voting start and end time\",\"params\":{\"newEndTime\":\"time voting will end\",\"newStartTime\":\"time voting will start\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Proposal Contract\",\"version\":1},\"userdoc\":{\"events\":{\"ProposalResults(bool,bool,uint256,uint256,uint256)\":{\"notice\":\"logs a successful proposal evaluation\"},\"StatusUpdated(string)\":{\"notice\":\"logs a change in proposal status.\"},\"VoteCast(address,uint256,uint8)\":{\"notice\":\"logs a vote\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGREProposal.sol\":\"OGREProposal\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6\",\"dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"proposalTitle_","type":"string"},{"internalType":"address","name":"daoAddress_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Enums.ProposalStatus","name":"currentStatus","type":"uint8"},{"internalType":"enum Enums.ProposalStatus","name":"requiredStatus","type":"uint8"}],"type":"error","name":"InvalidStatus"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bool","name":"quorumPassed","type":"bool","indexed":false},{"internalType":"bool","name":"supportPassed","type":"bool","indexed":false},{"internalType":"uint256","name":"totalVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"quorumVotesThreshold","type":"uint256","indexed":false},{"internalType":"uint256","name":"supportVotesThreshold","type":"uint256","indexed":false}],"type":"event","name":"ProposalResults","anonymous":false},{"inputs":[{"internalType":"string","name":"newStatus","type":"string","indexed":false}],"type":"event","name":"StatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint8","name":"vote","type":"uint8","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelProposal"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint8","name":"vote","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[{"internalType":"bool","name":"isRevotable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"configureProposal"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAction","outputs":[{"internalType":"struct Structs.Action","name":"","type":"tuple","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVote","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"removeAction"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"revotable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setActionReady"},{"inputs":[{"internalType":"string","name":"newProposalTitle","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setProposalTitle"},{"inputs":[{"internalType":"uint256","name":"newStartTime","type":"uint256"},{"internalType":"uint256","name":"newEndTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"status","outputs":[{"internalType":"enum Enums.ProposalStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint8","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateStatus"},{"inputs":[],"stateMutability":"view","type":"function","name":"voteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voteTotals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"uint8","name":"direction","type":"uint8"},{"internalType":"bool","name":"voted","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"addAction(address,uint256,string,bytes)":{"details":"pushes a new action to the end of the actions queue"},"castVote(uint256,uint8)":{"details":"casts a vote","params":{"tokenId":"id of token casting votes","vote":"number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN)"}},"configureProposal(bool)":{"details":"configures proposal settings","params":{"isRevotable":"allows revoting on proposal if true"}},"owner()":{"details":"Returns the address of the current owner."},"removeAction()":{"details":"removes action at end of action queue"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setProposalTitle(string)":{"details":"sets proposal title","params":{"newProposalTitle":"new proposal title"}},"setVotingPeriod(uint256,uint256)":{"details":"sets voting start and end time","params":{"newEndTime":"time voting will end","newStartTime":"time voting will start"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGREProposal.sol":"OGREProposal"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb","urls":["bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6","dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/OGREProposalFactory.sol/OGREProposalFactory.json b/out/OGREProposalFactory.sol/OGREProposalFactory.json deleted file mode 100644 index c92ac7c..0000000 --- a/out/OGREProposalFactory.sol/OGREProposalFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGREProposal","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"daoAddress","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50611cfd8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610154565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f90610118565b61009b9392919061021f565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c89190610284565b9091555050604080516001600160a01b038084168252851660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a1949350505050565b611a1e806102aa83390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b038116811461014f575f80fd5b919050565b5f805f60608486031215610166575f80fd5b833567ffffffffffffffff8082111561017d575f80fd5b818601915086601f830112610190575f80fd5b8135818111156101a2576101a2610125565b604051601f8201601f19908116603f011681019083821181831017156101ca576101ca610125565b816040528281528960208487010111156101e2575f80fd5b826020860160208301375f60208483010152809750505050505061020860208501610139565b915061021660408501610139565b90509250925092565b606081525f84518060608401525f5b8181101561024b576020818801810151608086840101520161022e565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a357634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033a26469706673582212204e64b9bcd4830431c02e6c647c5badd0cc8ffee078b3927e47bab6db949e66cf64736f6c63430008140033","sourceMap":"134:355:20:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631735016514610038578063cec70da614610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610154565b61007e565b6040516001600160a01b03909116815260200161004a565b5f8084848460405161008f90610118565b61009b9392919061021f565b604051809103905ff0801580156100b4573d5f803e3d5ffd5b50905060015f808282546100c89190610284565b9091555050604080516001600160a01b038084168252851660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a1949350505050565b611a1e806102aa83390190565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b038116811461014f575f80fd5b919050565b5f805f60608486031215610166575f80fd5b833567ffffffffffffffff8082111561017d575f80fd5b818601915086601f830112610190575f80fd5b8135818111156101a2576101a2610125565b604051601f8201601f19908116603f011681019083821181831017156101ca576101ca610125565b816040528281528960208487010111156101e2575f80fd5b826020860160208301375f60208483010152809750505050505061020860208501610139565b915061021660408501610139565b90509250925092565b606081525f84518060608401525f5b8181101561024b576020818801810151608086840101520161022e565b505f60808285018101919091526001600160a01b03958616602085015293909416604083015250601f909201601f191690910101919050565b808201808211156102a357634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801562000010575f80fd5b5060405162001a1e38038062001a1e833981016040819052620000339162000166565b806001600160a01b0381166200006257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006d81620000e7565b5060016200007c8482620002e4565b506001600160a01b0382166080526040517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc90620000d690602080825260089082015267141c9bdc1bdcd95960c21b604082015260600190565b60405180910390a1505050620003ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b038116811462000161575f80fd5b919050565b5f805f6060848603121562000179575f80fd5b83516001600160401b038082111562000190575f80fd5b818601915086601f830112620001a4575f80fd5b815181811115620001b957620001b962000136565b604051601f8201601f19908116603f01168101908382118183101715620001e457620001e462000136565b8160405282815260209350898484870101111562000200575f80fd5b5f91505b8282101562000223578482018401518183018501529083019062000204565b5f8484830101528097505050506200023d8187016200014a565b935050506200024f604085016200014a565b90509250925092565b600181811c908216806200026d57607f821691505b6020821081036200028c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002df575f81815260208120601f850160051c81016020861015620002ba5750805b601f850160051c820191505b81811015620002db57828155600101620002c6565b5050505b505050565b81516001600160401b0381111562000300576200030062000136565b620003188162000311845462000258565b8462000292565b602080601f8311600181146200034e575f8415620003365750858301515b5f19600386901b1c1916600185901b178555620002db565b5f85815260208120601f198616915b828110156200037e578886015182559484019460019091019084016200035d565b50858210156200039c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b608051611644620003da5f395f81816101cd015281816103c801528181610473015261073a01526116445ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c80635eecd218116100d9578063a15a36c711610093578063c63840711161006e578063c638407114610365578063e50457521461036e578063ecca031f14610383578063f2fde38b146103aa575f80fd5b8063a15a36c71461031f578063b6e7687314610332578063baceec7a14610352575f80fd5b80635eecd218146102db578063715018a6146102e357806378e97925146102eb578063814a1d8e146102f45780638da5cb5b146103075780639070577f14610317575f80fd5b8063421e44441161012a578063421e44441461023157806354eb23a914610239578063567813881461024c5780635a55c1f01461025f5780635b4d2f85146102845780635df8133014610297575f80fd5b80630b3af7f9146101715780630c8ba75814610186578063200d2ed2146101ae5780632131c68c146101c8578063280b0c87146102075780633197cbb61461021a575b5f80fd5b61018461017f3660046110b2565b6103bd565b005b5f5461019990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6002546101bb9060ff1681565b6040516101a59190611106565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a5565b61018461021536600461111a565b610468565b61022360055481565b6040519081526020016101a5565b610184610500565b6101846102473660046111f5565b610595565b61018461025a366004611281565b6106c9565b61027261026d3660046112ab565b610a8f565b60405160ff90911681526020016101a5565b6101846102923660046112cf565b610afc565b6102c26102a53660046112ab565b60096020525f908152604090205460ff8082169161010090041682565b6040805160ff90931683529015156020830152016101a5565b600a54610223565b610184610b4d565b61022360045481565b6102236103023660046112ab565b610b60565b5f546001600160a01b03166101ef565b610184610b76565b61018461032d36600461111a565b610c19565b6103456103403660046112ab565b610d01565b6040516101a5919061132d565b610184610360366004611398565b610ecb565b61022360035481565b610376610f0f565b6040516101a591906113d2565b6101996103913660046112ab565b5f90815260096020526040902054610100900460ff1690565b6101846103b83660046113e4565b610f9b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042f5760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b60448201526064015b60405180910390fd5b8060ff166004811115610444576104446110d2565b6002805460ff19166001836004811115610460576104606110d2565b021790555050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d55760405162461bcd60e51b815260206004820152601260248201527163616c6c6572206d7573742062652064616f60701b6044820152606401610426565b80600a83815481106104e9576104e96113fd565b905f5260205f209060050201600401819055505050565b610508610fd8565b6004541580610518575060045442105b6105345760405162461bcd60e51b815260040161042690611411565b600a80548061054557610545611448565b5f8281526020812060055f199093019283020180546001600160a01b0319168155600181018290559061057b6002830182611053565b610588600383015f611053565b600482015f905550509055565b61059d610fd8565b60045415806105ad575060045442105b6105c95760405162461bcd60e51b815260040161042690611411565b6040805160a0810182526001600160a01b03868116825260208201868152928201858152606083018590525f60808401819052600a8054600181018255915283517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8600590920291820180546001600160a01b0319169190941617835593517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a985015551919283927fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2aa909101906106a090826114e2565b50606082015160038201906106b590826114e2565b506080820151816004015550505050505050565b5f60025460ff1660048111156106e1576106e16110d2565b1461071e5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420737461746560981b6044820152606401610426565b60405163d59f282760e01b8152600481018390523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d59f282790604401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061159e565b6107f05760405162461bcd60e51b815260206004820152601660248201527531b0b63632b9103737ba103a37b5b2b71037bbb732b960511b6044820152606401610426565b60028160ff1611156108605760405162461bcd60e51b815260206004820152603360248201527f766f7465206d75737420626520656974686572204e4f202830292c20594553206044820152722831292c206f72204142535441494e2028322960681b6064820152608401610426565b6004544210156108b25760405162461bcd60e51b815260206004820152601860248201527f6d7573742062652061667465722073746172742074696d6500000000000000006044820152606401610426565b6005544211156109045760405162461bcd60e51b815260206004820152601760248201527f6d757374206265206265666f726520656e642074696d650000000000000000006044820152606401610426565b5f82815260096020526040902054610100900460ff1661096857600160035f82825461093091906115cd565b9091555060019050600660ff83166003811061094e5761094e6113fd565b015f82825461095d91906115cd565b90915550610a299050565b5f54600160a01b900460ff166109c05760405162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206973206e6f74207265766f7461626c65000000000000006044820152606401610426565b5f8281526009602052604090205460019060069060ff16600381106109e7576109e76113fd565b015f8282546109f691906115e0565b9091555060019050600660ff831660038110610a1457610a146113fd565b015f828254610a2391906115cd565b90915550505b5f82815260096020908152604091829020805461010060ff861661ffff1990921682171790915582513381529182018590528183015290517f251f168c3d37dca4f3922f4aa12852da0c3de8ef70710e0cf58eba85805168a29181900360600190a15050565b5f81815260096020526040812054610100900460ff16610ae75760405162461bcd60e51b81526020600482015260136024820152721d1bdad95b881a185cc81b9bdd081d9bdd1959606a1b6044820152606401610426565b505f9081526009602052604090205460ff1690565b610b04610fd8565b6004541580610b14575060045442105b610b305760405162461bcd60e51b815260040161042690611411565b5f8054911515600160a01b0260ff60a01b19909216919091179055565b610b55610fd8565b610b5e5f611004565b565b60068160038110610b6f575f80fd5b0154905081565b610b7e610fd8565b5f60025460ff166004811115610b9657610b966110d2565b14610bbd5760025460405163f924664d60e01b81526104269160ff16905f906004016115f3565b6002805460ff191660011790556040805160208082526009908201526810d85b98d95b1b195960ba1b8183015290517f69f380a4c820112d1c3e49f6e19e1d33c66d98a47f9c8ad3221a82b79b0bfcbc916060908290030190a1565b610c21610fd8565b6004541580610c31575060045442105b610c4d5760405162461bcd60e51b815260040161042690611411565b42821015610c9d5760405162461bcd60e51b815260206004820181905260248201527f73746172742074696d65206d75737420626520696e20746865206675747572656044820152606401610426565b818111610cf65760405162461bcd60e51b815260206004820152602160248201527f656e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b6064820152608401610426565b600491909155600555565b610d396040518060a001604052805f6001600160a01b031681526020015f815260200160608152602001606081526020015f81525090565b600a8281548110610d4c57610d4c6113fd565b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282018054610daa9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd69061145c565b8015610e215780601f10610df857610100808354040283529160200191610e21565b820191905f5260205f20905b815481529060010190602001808311610e0457829003601f168201915b50505050508152602001600382018054610e3a9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e669061145c565b8015610eb15780601f10610e8857610100808354040283529160200191610eb1565b820191905f5260205f20905b815481529060010190602001808311610e9457829003601f168201915b505050505081526020016004820154815250509050919050565b610ed3610fd8565b6004541580610ee3575060045442105b610eff5760405162461bcd60e51b815260040161042690611411565b6001610f0b82826114e2565b5050565b60018054610f1c9061145c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f489061145c565b8015610f935780601f10610f6a57610100808354040283529160200191610f93565b820191905f5260205f20905b815481529060010190602001808311610f7657829003601f168201915b505050505081565b610fa3610fd8565b6001600160a01b038116610fcc57604051631e4fbdf760e01b81525f6004820152602401610426565b610fd581611004565b50565b5f546001600160a01b03163314610b5e5760405163118cdaa760e01b8152336004820152602401610426565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805461105f9061145c565b5f825580601f1061106e575050565b601f0160209004905f5260205f2090810190610fd591905b80821115611099575f8155600101611086565b5090565b803560ff811681146110ad575f80fd5b919050565b5f602082840312156110c2575f80fd5b6110cb8261109d565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6005811061110257634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161111482846110e6565b92915050565b5f806040838503121561112b575f80fd5b50508035926020909101359150565b80356001600160a01b03811681146110ad575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561117e5761117e611150565b604051601f8501601f19908116603f011681019082821181831017156111a6576111a6611150565b816040528093508581528686860111156111be575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f8301126111e6575f80fd5b6110cb83833560208501611164565b5f805f8060808587031215611208575f80fd5b6112118561113a565b935060208501359250604085013567ffffffffffffffff80821115611234575f80fd5b611240888389016111d7565b93506060870135915080821115611255575f80fd5b508501601f81018713611266575f80fd5b61127587823560208401611164565b91505092959194509250565b5f8060408385031215611292575f80fd5b823591506112a26020840161109d565b90509250929050565b5f602082840312156112bb575f80fd5b5035919050565b8015158114610fd5575f80fd5b5f602082840312156112df575f80fd5b81356110cb816112c2565b5f81518084525f5b8181101561130e576020818501810151868301820152016112f2565b505f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f604083015160a0606084015261136460c08401826112ea565b90506060840151601f1984830301608085015261138182826112ea565b915050608084015160a08401528091505092915050565b5f602082840312156113a8575f80fd5b813567ffffffffffffffff8111156113be575f80fd5b6113ca848285016111d7565b949350505050565b602081525f6110cb60208301846112ea565b5f602082840312156113f4575f80fd5b6110cb8261113a565b634e487b7160e01b5f52603260045260245ffd5b60208082526017908201527f6d7573742062652070726520766f746520706572696f64000000000000000000604082015260600190565b634e487b7160e01b5f52603160045260245ffd5b600181811c9082168061147057607f821691505b60208210810361148e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114dd575f81815260208120601f850160051c810160208610156114ba5750805b601f850160051c820191505b818110156114d9578281556001016114c6565b5050505b505050565b815167ffffffffffffffff8111156114fc576114fc611150565b6115108161150a845461145c565b84611494565b602080601f831160018114611543575f841561152c5750858301515b5f19600386901b1c1916600185901b1785556114d9565b5f85815260208120601f198616915b8281101561157157888601518255948401946001909101908401611552565b508582101561158e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156115ae575f80fd5b81516110cb816112c2565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611114576111146115b9565b81810381811115611114576111146115b9565b6040810161160182856110e6565b6110cb60208301846110e656fea2646970667358221220591eb0bca4050c343a4aebb9a4e18d1fcfbdbee9b6e17074b70a5660efcad09d64736f6c63430008140033a26469706673582212204e64b9bcd4830431c02e6c647c5badd0cc8ffee078b3927e47bab6db949e66cf64736f6c63430008140033","sourceMap":"134:355:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;;185:302:20;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1755:32:30;;;1737:51;;1725:2;1710:18;185:302:20;1591:203:30;185:302:20;286:7;305:17;342:5;349:10;361:5;325:42;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;305:62;;396:1;377:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;412:38:20;;;-1:-1:-1;;;;;2995:15:30;;;2977:34;;3047:15;;3042:2;3027:18;;3020:43;412:38:20;;2912:18:30;412:38:20;;;;;;;475:4;185:302;-1:-1:-1;;;;185:302:20:o;-1:-1:-1:-;;;;;;;;:::o;196:127:30:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:173;396:20;;-1:-1:-1;;;;;445:31:30;;435:42;;425:70;;491:1;488;481:12;425:70;328:173;;;:::o;506:1080::-;593:6;601;609;662:2;650:9;641:7;637:23;633:32;630:52;;;678:1;675;668:12;630:52;718:9;705:23;747:18;788:2;780:6;777:14;774:34;;;804:1;801;794:12;774:34;842:6;831:9;827:22;817:32;;887:7;880:4;876:2;872:13;868:27;858:55;;909:1;906;899:12;858:55;945:2;932:16;967:2;963;960:10;957:36;;;973:18;;:::i;:::-;1048:2;1042:9;1016:2;1102:13;;-1:-1:-1;;1098:22:30;;;1122:2;1094:31;1090:40;1078:53;;;1146:18;;;1166:22;;;1143:46;1140:72;;;1192:18;;:::i;:::-;1232:10;1228:2;1221:22;1267:2;1259:6;1252:18;1309:7;1302:4;1297:2;1293;1289:11;1285:22;1282:35;1279:55;;;1330:1;1327;1320:12;1279:55;1390:2;1383:4;1379:2;1375:13;1368:4;1360:6;1356:17;1343:50;1437:1;1430:4;1425:2;1417:6;1413:15;1409:26;1402:37;1458:6;1448:16;;;;;;;1483:40;1517:4;1506:9;1502:20;1483:40;:::i;:::-;1473:50;;1542:38;1576:2;1565:9;1561:18;1542:38;:::i;:::-;1532:48;;506:1080;;;;;:::o;1799:734::-;2004:2;1993:9;1986:21;1967:4;2036:6;2030:13;2079:6;2074:2;2063:9;2059:18;2052:34;2104:1;2114:145;2128:6;2125:1;2122:13;2114:145;;;2242:4;2226:14;;;2222:25;;2216:32;2210:3;2191:17;;;2187:27;2180:69;2143:12;2114:145;;;-1:-1:-1;2309:1:30;2303:3;2279:22;;;2275:32;;2268:43;;;;-1:-1:-1;;;;;2459:15:30;;;2452:4;2437:20;;2430:45;2511:15;;;;2506:2;2491:18;;2484:43;-1:-1:-1;2372:2:30;2351:15;;;-1:-1:-1;;2347:29:30;2332:45;;;2328:55;;;-1:-1:-1;1799:734:30:o;2538:222::-;2603:9;;;2624:10;;;2621:133;;;2676:10;2671:3;2667:20;2664:1;2657:31;2711:4;2708:1;2701:15;2739:4;2736:1;2729:15;2621:133;2538:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGREProposal(string,address,address)":"cec70da6","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"produceOGREProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGREProposalFactory.sol\":\"OGREProposalFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/OGREProposal.sol\":{\"keccak256\":\"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6\",\"dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGREProposalFactory.sol\":{\"keccak256\":\"0x5a675da1671e9691b1de2b5d048b2e8c7172c78e79b8d7c9c9482be572355844\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5f6610fa9a388602f991c273b9b3a944b17eca5eee751e4412615327fd6f8f06\",\"dweb:/ipfs/QmP7EKxz2kWGQBVBfFYutA2AFhpJytkzsDnwiaKG577TgQ\"]},\"src/interfaces/IOGREDAO.sol\":{\"keccak256\":\"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de\",\"dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"address","name":"daoAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGREProposal","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGREProposalFactory.sol":"OGREProposalFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/OGREProposal.sol":{"keccak256":"0x71c0023685f6e285bc700770c4647842ad78b810dff79cb046dc48b088efddcb","urls":["bzz-raw://ed125c0d8bca77e733f4030ba7e6ebd349605e22a182fb422aa81c18febac5f6","dweb:/ipfs/QmWE6wGjMggGDskAQaqU6VQPu1kHNrmyTYvr1vQmj1uxDy"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGREProposalFactory.sol":{"keccak256":"0x5a675da1671e9691b1de2b5d048b2e8c7172c78e79b8d7c9c9482be572355844","urls":["bzz-raw://5f6610fa9a388602f991c273b9b3a944b17eca5eee751e4412615327fd6f8f06","dweb:/ipfs/QmP7EKxz2kWGQBVBfFYutA2AFhpJytkzsDnwiaKG577TgQ"],"license":"UNLICENSED"},"src/interfaces/IOGREDAO.sol":{"keccak256":"0xe6e983e6206348347c20913e4ffddf632013eb45f45111342faf5050e65c024d","urls":["bzz-raw://e33c575bfc99654df4337061483ac536658dbd054960b03e90b4f010a1c777de","dweb:/ipfs/QmXh87sHTLnMMkWGTeDXyvURUcmxFmNQnNH9dMKNfYpwxu"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/OGRETest.t.sol/OGRETest.json b/out/OGRETest.t.sol/OGRETest.json deleted file mode 100644 index aa38879..0000000 --- a/out/OGRETest.t.sol/OGRETest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"dao","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OGREDAO"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testExample","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601f8054909116909117905534801561002c575f80fd5b50613dd88061003a5f395ff3fe608060405234801562000010575f80fd5b506004361062000104575f3560e01c806366d9a9a0116200009f578063b5508aa9116200006b578063b5508aa914620001f4578063ba414fa614620001fe578063e20c9f711462000219578063fa7626d41462000223575f80fd5b806366d9a9a0146200019f57806385226c8114620001b8578063916a17c614620001d1578063b0464fdc14620001ea575f80fd5b80633e5e3c2311620000df5780633e5e3c23146200014f5780633f5a4a2a14620001595780633f7286f414620001635780634162169f146200016d575f80fd5b80630a9254e414620001085780631ed7831c14620001145780632ade38801462000136575b5f80fd5b6200011262000231565b005b6200011e620002fc565b6040516200012d919062000bcf565b60405180910390f35b620001406200035e565b6040516200012d919062000c62565b6200011e620004a6565b6200011262000506565b6200011e62000514565b601f54620001869061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016200012d565b620001a962000574565b6040516200012d919062000d6c565b620001c2620006e4565b6040516200012d919062000df5565b620001db620007b9565b6040516200012d919062000e59565b620001db6200089e565b620001c262000983565b6200020862000a58565b60405190151581526020016200012d565b6200011e62000afc565b601f54620002089060ff1681565b30306001306101f4604051620002479062000bc1565b60e0808252600890820181905267546573744e616d6560c01b6101008301526101206020830181905282015267546573744d65746160c01b6101408201526001600160a01b0395861660408201529385166060850152608084019290925290921660a082015260c081019190915261016001604051809103905ff080158015620002d3573d5f803e3d5ffd5b50601f60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000335575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000485578382905f5260205f20018054620003f39062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620004219062000eca565b8015620004705780601f10620004465761010080835404028352916020019162000470565b820191905f5260205f20905b8154815290600101906020018083116200045257829003601f168201915b505050505081526020019060010190620003d3565b50505050815250508152602001906001019062000381565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b62000512600162000b5c565b565b606060178054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f2090600202016040518060400160405290815f82018054620005ca9062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620005f89062000eca565b8015620006475780601f106200061d5761010080835404028352916020019162000647565b820191905f5260205f20905b8154815290600101906020018083116200062957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015620006cb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200068c5790505b5050505050815250508152602001906001019062000597565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620007279062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620007559062000eca565b8015620007a45780601f106200077a57610100808354040283529160200191620007a4565b820191905f5260205f20905b8154815290600101906020018083116200078657829003601f168201915b50505050508152602001906001019062000707565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200088557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620008465790505b50505050508152505081526020019060010190620007dc565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200096a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200092b5790505b50505050508152505081526020019060010190620008c1565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620009c69062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620009f49062000eca565b801562000a435780601f1062000a195761010080835404028352916020019162000a43565b820191905f5260205f20905b81548152906001019060200180831162000a2557829003601f168201915b505050505081526020019060010190620009a6565b6008545f9060ff161562000a70575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa15801562000acf573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af5919062000f04565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b604051630c9fd58160e01b81528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562000ba7575f80fd5b505afa15801562000bba573d5f803e3d5ffd5b5050505050565b612e868062000f1d83390190565b602080825282518282018190525f9190848201906040850190845b8181101562000c115783516001600160a01b03168352928401929184019160010162000bea565b50909695505050505050565b5f81518084525f5b8181101562000c435760208185018101518683018201520162000c25565b505f602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190525f919060409081850190600581811b8701840188860187805b8581101562000d1757603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101562000d0057605f1989850301835262000ced84865162000c1d565b948e01949350918d019160010162000cce565b505050978a01979450509188019160010162000c88565b50919a9950505050505050505050565b5f8151808452602080850194508084015f5b8381101562000d615781516001600160e01b0319168752958201959082019060010162000d39565b509495945050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f190185528151805187855262000db88886018262000c1d565b91890151858303868b015291905062000dd2818362000d27565b96890196945050509086019060010162000d91565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562000e4c57603f1988860301845262000e3985835162000c1d565b9450928501929085019060010162000e1a565b5092979650505050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f19018552815180516001600160a01b0316845287015187840187905262000eb68785018262000d27565b958801959350509086019060010162000e7e565b600181811c9082168062000edf57607f821691505b60208210810362000efe57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562000f15575f80fd5b505191905056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa26469706673582212204bc4463225e0e6bc9ee1d438d609286f7778949f0ea70045ec6c3f346f8293c864736f6c63430008140033","sourceMap":"124:263:75:-:0;;;3126:44:24;;;3166:4;-1:-1:-1;;3126:44:24;;;;;;;;1016:26:34;;;;;;;;;;;124:263:75;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000104575f3560e01c806366d9a9a0116200009f578063b5508aa9116200006b578063b5508aa914620001f4578063ba414fa614620001fe578063e20c9f711462000219578063fa7626d41462000223575f80fd5b806366d9a9a0146200019f57806385226c8114620001b8578063916a17c614620001d1578063b0464fdc14620001ea575f80fd5b80633e5e3c2311620000df5780633e5e3c23146200014f5780633f5a4a2a14620001595780633f7286f414620001635780634162169f146200016d575f80fd5b80630a9254e414620001085780631ed7831c14620001145780632ade38801462000136575b5f80fd5b6200011262000231565b005b6200011e620002fc565b6040516200012d919062000bcf565b60405180910390f35b620001406200035e565b6040516200012d919062000c62565b6200011e620004a6565b6200011262000506565b6200011e62000514565b601f54620001869061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016200012d565b620001a962000574565b6040516200012d919062000d6c565b620001c2620006e4565b6040516200012d919062000df5565b620001db620007b9565b6040516200012d919062000e59565b620001db6200089e565b620001c262000983565b6200020862000a58565b60405190151581526020016200012d565b6200011e62000afc565b601f54620002089060ff1681565b30306001306101f4604051620002479062000bc1565b60e0808252600890820181905267546573744e616d6560c01b6101008301526101206020830181905282015267546573744d65746160c01b6101408201526001600160a01b0395861660408201529385166060850152608084019290925290921660a082015260c081019190915261016001604051809103905ff080158015620002d3573d5f803e3d5ffd5b50601f60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000335575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000485578382905f5260205f20018054620003f39062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620004219062000eca565b8015620004705780601f10620004465761010080835404028352916020019162000470565b820191905f5260205f20905b8154815290600101906020018083116200045257829003601f168201915b505050505081526020019060010190620003d3565b50505050815250508152602001906001019062000381565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b62000512600162000b5c565b565b606060178054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f2090600202016040518060400160405290815f82018054620005ca9062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620005f89062000eca565b8015620006475780601f106200061d5761010080835404028352916020019162000647565b820191905f5260205f20905b8154815290600101906020018083116200062957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015620006cb57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200068c5790505b5050505050815250508152602001906001019062000597565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620007279062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620007559062000eca565b8015620007a45780601f106200077a57610100808354040283529160200191620007a4565b820191905f5260205f20905b8154815290600101906020018083116200078657829003601f168201915b50505050508152602001906001019062000707565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200088557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620008465790505b50505050508152505081526020019060010190620007dc565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156200049d575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200096a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200092b5790505b50505050508152505081526020019060010190620008c1565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156200049d578382905f5260205f20018054620009c69062000eca565b80601f0160208091040260200160405190810160405280929190818152602001828054620009f49062000eca565b801562000a435780601f1062000a195761010080835404028352916020019162000a43565b820191905f5260205f20905b81548152906001019060200180831162000a2557829003601f168201915b505050505081526020019060010190620009a6565b6008545f9060ff161562000a70575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa15801562000acf573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000af5919062000f04565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200035457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000335575050505050905090565b604051630c9fd58160e01b81528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562000ba7575f80fd5b505afa15801562000bba573d5f803e3d5ffd5b5050505050565b612e868062000f1d83390190565b602080825282518282018190525f9190848201906040850190845b8181101562000c115783516001600160a01b03168352928401929184019160010162000bea565b50909695505050505050565b5f81518084525f5b8181101562000c435760208185018101518683018201520162000c25565b505f602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190525f919060409081850190600581811b8701840188860187805b8581101562000d1757603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101562000d0057605f1989850301835262000ced84865162000c1d565b948e01949350918d019160010162000cce565b505050978a01979450509188019160010162000c88565b50919a9950505050505050505050565b5f8151808452602080850194508084015f5b8381101562000d615781516001600160e01b0319168752958201959082019060010162000d39565b509495945050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f190185528151805187855262000db88886018262000c1d565b91890151858303868b015291905062000dd2818362000d27565b96890196945050509086019060010162000d91565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562000e4c57603f1988860301845262000e3985835162000c1d565b9450928501929085019060010162000e1a565b5092979650505050505050565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f5b8381101562000de757888303603f19018552815180516001600160a01b0316845287015187840187905262000eb68785018262000d27565b958801959350509086019060010162000e7e565b600181811c9082168062000edf57607f821691505b60208210810362000efe57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562000f15575f80fd5b505191905056fe60c060405234801562000010575f80fd5b5060405162002e8638038062002e868339810160408190526200003391620003bd565b60018190556001600160a01b0385166200009f5760405162461bcd60e51b815260206004820152602260248201527f6e667420616464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152602160248201527f61646d696e20726f6c652063616e6e6f74206265207a65726f206164647265736044820152607360f81b606482015260840162000096565b60036200010f8882620004f7565b5060046200011e8782620004f7565b506001600160a01b0380861660a0528416608052600d839055620001515f8051602062002e4683398151915283620001ed565b506200016c5f8051602062002e6683398151915283620001ed565b50620001955f8051602062002e668339815191525f8051602062002e4683398151915262000299565b604080516001600160a01b038781168252868116602083015284168183015290517f552b78c92c2932581cee967b6925eea60f5d345efa257d0432a333a6b55dc2b19181900360600190a150505050505050620005bf565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000290575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002473390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000293565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000307575f80fd5b81516001600160401b0380821115620003245762000324620002e3565b604051601f8301601f19908116603f011681019082821181831017156200034f576200034f620002e3565b816040528381526020925086838588010111156200036b575f80fd5b5f91505b838210156200038e57858201830151818301840152908201906200036f565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620003b8575f80fd5b919050565b5f805f805f805f60e0888a031215620003d4575f80fd5b87516001600160401b0380821115620003eb575f80fd5b620003f98b838c01620002f7565b985060208a01519150808211156200040f575f80fd5b506200041e8a828b01620002f7565b9650506200042f60408901620003a1565b94506200043f60608901620003a1565b9350608088015192506200045660a08901620003a1565b915060c0880151905092959891949750929550565b600181811c908216806200048057607f821691505b6020821081036200049f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004f2575f81815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b03811115620005135762000513620002e3565b6200052b816200052484546200046b565b84620004a5565b602080601f83116001811462000561575f8415620005495750858301515b5f19600386901b1c1916600185901b178555620004ee565b5f85815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005af57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612834620006125f395f818161048101528181610845015281816109e601528181610a3a01528181610bd3015281816119c10152611a4701525f818161067a015261149301526128345ff3fe608060405260043610610205575f3560e01c80636c78a1c211610116578063a217fddf116100a4578063d94f22ee1161006b578063d94f22ee14610669578063da35c6641461069c578063e177246e146106b1578063e664f3b2146106d0578063fefd778e146106e557005b8063a217fddf146105da578063a67a03ab146105ed578063bc5862a41461060c578063d547741f1461062b578063d59f28271461064a57005b80637d0d719b116100e85780637d0d719b1461052f57806391d148541461056a578063977d1e18146105895780639f367e08146105a8578063a1de78e2146105bb57005b80636c78a1c2146104b85780636e8c7ab9146104d75780637b7a91dd146105055780637c36e8e81461051a57005b80632f2ff15d116101935780634d6561c1116101655780634d6561c11461040657806351ff2b741461041b578063520500031461043a5780635bf8633a146104705780636a42b8f8146104a357005b80632f2ff15d1461039557806336568abe146103b45780634524c7e1146103d357806348976936146103f257005b8063150b7a02116101d7578063150b7a02146102d257806322e994f31461030a57806323dd523d14610329578063248a9ca3146103485780632df57dd61461037657005b8063013cf08b1461020e57806301ffc9a71461025f5780630787e15c1461028e57806311aee380146102af57005b3661020c57005b005b348015610219575f80fd5b50610242610228366004611f4c565b600b6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026a575f80fd5b5061027e610279366004611f63565b610704565b6040519015158152602001610256565b348015610299575f80fd5b506102a261073a565b6040516102569190611fde565b3480156102ba575f80fd5b506102c460085481565b604051908152602001610256565b3480156102dd575f80fd5b506102f16102ec366004612004565b6107c6565b6040516001600160e01b03199091168152602001610256565b348015610315575f80fd5b5061020c610324366004611f4c565b610825565b348015610334575f80fd5b5061020c610343366004611f4c565b610a1a565b348015610353575f80fd5b506102c4610362366004611f4c565b5f9081526020819052604090206001015490565b348015610381575f80fd5b5061027e61039036600461209b565b610bfc565b3480156103a0575f80fd5b5061020c6103af3660046120b6565b6112ae565b3480156103bf575f80fd5b5061020c6103ce3660046120b6565b6112d8565b3480156103de575f80fd5b5061020c6103ed366004611f4c565b611310565b3480156103fd575f80fd5b506102a2611386565b348015610411575f80fd5b506102c460075481565b348015610426575f80fd5b5061027e6104353660046121d2565b611393565b348015610445575f80fd5b5061027e61045436600461209b565b6001600160a01b03165f908152600c6020526040902054151590565b34801561047b575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ae575f80fd5b506102c460015481565b3480156104c3575f80fd5b5061020c6104d2366004611f4c565b600755565b3480156104e2575f80fd5b5061027e6104f1366004611f4c565b60026020525f908152604090205460ff1681565b348015610510575f80fd5b506102c460055481565b348015610525575f80fd5b506102c460065481565b34801561053a575f80fd5b5061055d610549366004611f4c565b5f9081526009602052604090205460ff1690565b604051610256919061227b565b348015610575575f80fd5b5061027e6105843660046120b6565b6113e0565b348015610594575f80fd5b5061020c6105a33660046122a1565b611408565b6102426105b63660046122a1565b611418565b3480156105c6575f80fd5b5061020c6105d53660046122a1565b6115a4565b3480156105e5575f80fd5b506102c45f81565b3480156105f8575f80fd5b5061020c61060736600461209b565b6115b0565b348015610617575f80fd5b5061020c610626366004611f4c565b6118ed565b348015610636575f80fd5b5061020c6106453660046120b6565b611a16565b348015610655575f80fd5b5061027e6106643660046120b6565b611a3a565b348015610674575f80fd5b506102427f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a7575f80fd5b506102c4600a5481565b3480156106bc575f80fd5b5061020c6106cb366004611f4c565b611ae3565b3480156106db575f80fd5b506102c4600d5481565b3480156106f0575f80fd5b5061020c6106ff366004611f4c565b611b3e565b5f6001600160e01b03198216637965db0b60e01b148061073457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610747906122db565b80601f0160208091040260200160405190810160405280929190818152602001828054610773906122db565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561088a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ae9190612313565b6001600160a01b0316146109185760405162461bcd60e51b815260206004820152602660248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20726560448201526533b4b9ba32b960d11b60648201526084015b60405180910390fd5b60025f8281526009602052604090205460ff16600381111561093c5761093c612267565b036109895760405162461bcd60e51b815260206004820152601b60248201527f746f6b656e20697320616c726561647920726567697374657265640000000000604482015260640161090f565b5f818152600960205260408120805460ff1916600217905560088054600192906109b4908490612342565b90915550506040517f6d6a6e32530d4895a149a76159bcea283d7bbd32170c5e5a95b7c02a9098c38a90610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b60405180910390a150565b6040516331a9108f60e11b81526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa39190612313565b6001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602860248201527f73656e646572206d75737420626520746f6b656e206f776e657220746f20756e6044820152673932b3b4b9ba32b960c11b606482015260840161090f565b5f8181526009602052604081205460ff166003811115610b2c57610b2c612267565b03610b795760405162461bcd60e51b815260206004820152601d60248201527f746f6b656e20697320616c726561647920756e72656769737465726564000000604482015260640161090f565b5f818152600960205260408120805460ff191690556008805460019290610ba1908490612380565b90915550506040517f83052bbd673d540f623d24c36b94005890bac88efc6fafce2010850d9b02ba4690610a0f9030907f00000000000000000000000000000000000000000000000000000000000000009085903390612355565b6001600160a01b0381165f908152600c6020526040812054610c305760405162461bcd60e51b815260040161090f90612393565b5f826001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9191906123e0565b6004811115610ca257610ca2612267565b14610ce85760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b816001600160a01b03166378e979256040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4891906123fe565b5f03610d965760405162461bcd60e51b815260206004820152601c60248201527f766f746520706572696f6420686173206e6f74206265656e2073657400000000604482015260640161090f565b816001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df691906123fe565b4211610e595760405162461bcd60e51b815260206004820152602c60248201527f63616e6e6f74206576616c75617465206265666f726520766f7465207065726960448201526b1bd9081a185cc8195b99195960a21b606482015260840161090f565b6040516340a50ec760e11b81525f60048201819052906001600160a01b0384169063814a1d8e90602401602060405180830381865afa158015610e9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec291906123fe565b6040516340a50ec760e11b8152600160048201529091505f906001600160a01b0385169063814a1d8e90602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e91906123fe565b6040516340a50ec760e11b8152600260048201529091505f906001600160a01b0386169063814a1d8e90602401602060405180830381865afa158015610f76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9a91906123fe565b90505f81610fa88486612342565b610fb29190612342565b90505f612710600554600854610fc89190612415565b610fd2919061242c565b90505f612710600654600854610fe89190612415565b610ff2919061242c565b90505f808287111561100357600191505b8385111561100f575060015b8180156110195750805b156111ee57604051630b3af7f960e01b8152600360048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561105d575f80fd5b505af115801561106f573d5f803e3d5ffd5b505050505f8a6001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d491906123fe565b90505f5b818160ff1610156111e75760405163b6e7687360e01b815260ff821660048201525f906001600160a01b038e169063b6e76873906024015f60405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111509190810190612497565b905061116d815f0151826020015183604001518460600151611bb4565b6080820181905260405163280b0c8760e01b815260ff8416600482015260248101919091526001600160a01b038e169063280b0c87906044015f604051808303815f87803b1580156111bd575f80fd5b505af11580156111cf573d5f803e3d5ffd5b505050505080806111df9061255f565b9150506110d8565b5050611244565b604051630b3af7f960e01b8152600260048201526001600160a01b038b1690630b3af7f9906024015f604051808303815f87803b15801561122d575f80fd5b505af115801561123f573d5f803e3d5ffd5b505050505b604080518215158152831515602082015290810186905260608101859052608081018490527f835dbb3bf252734271b555e79649ca7817703fb8fbeb9f7a38f9d36b04a017869060a00160405180910390a18080156112a05750815b9a9950505050505050505050565b5f828152602081905260409020600101546112c881611c5a565b6112d28383611c64565b50505050565b6001600160a01b03811633146113015760405163334bd91960e11b815260040160405180910390fd5b61130b8282611cf3565b505050565b6127108111156113325760405162461bcd60e51b815260040161090f9061257d565b5f81116113815760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600555565b60038054610747906122db565b5f8086868686866040516020016113ae9594939291906125c3565b60408051808303601f1901815291815281516020928301205f908152600290925290205460ff16979650505050505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6004611414828261265b565b5050565b5f600d54341461147a5760405162461bcd60e51b815260206004820152602760248201527f696e73756666696369656e74207061796d656e7420666f7220647261667420706044820152661c9bdc1bdcd85b60ca1b606482015260840161090f565b60405163676386d360e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cec70da6906114cc90869030903390600401612717565b6020604051808303815f875af11580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c9190612313565b90506001600a5f8282546115209190612342565b9091555050600a80546001600160a01b0383165f818152600c60209081526040808320859055938252600b905282902080546001600160a01b0319169091179055905490517fa33abb4d0226d76a56e89b18b3c8f3dec914fce06449b6ff646962c19ddc971e9161159691309185913390612355565b60405180910390a192915050565b6003611414828261265b565b6001600160a01b0381165f908152600c60205260409020546115e45760405162461bcd60e51b815260040161090f90612393565b6003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164691906123e0565b600481111561165757611657612267565b1461169d5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642070726f706f73616c20737461746560501b604482015260640161090f565b5f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fe91906123fe565b116117435760405162461bcd60e51b81526020600482015260156024820152746e6f20616374696f6e7320746f206578656375746560581b604482015260640161090f565b604051630b3af7f960e01b81526004808201526001600160a01b03821690630b3af7f9906024015f604051808303815f87803b158015611781575f80fd5b505af1158015611793573d5f803e3d5ffd5b505050505f816001600160a01b0316635eecd2186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f891906123fe565b90505f5b818160ff1610156118ab5760405163b6e7687360e01b815260ff821660048201525f906001600160a01b0385169063b6e76873906024015f60405180830381865afa15801561184d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118749190810190612497565b9050611896815f01518260200151836040015184606001518560800151611d5c565b505080806118a39061255f565b9150506117fc565b506040516001600160a01b03831681527f077e00e56e5d36ae097a95cb003427416253dd9bb4491393d3eb4cf8f63fd41e906020015b60405180910390a15050565b7ff8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05a61191781611c5a565b5f8281526009602052604081205460ff16600381111561193957611939612267565b146119925760405162461bcd60e51b8152602060048201526024808201527f746f6b656e206d75737420626520756e7265676973746572656420746f20696e6044820152637669746560e01b606482015260840161090f565b5f82815260096020526040902080546001919060ff191682800217905550604080513081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660208201529081018390527f57ff8c3065de342518178781cf8cd82078e0253b4e031002aedd00047e1ff18f906060016118e1565b5f82815260208190526040902060010154611a3081611c5a565b6112d28383611cf3565b5f816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e856040518263ffffffff1660e01b8152600401611a9391815260200190565b602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612313565b6001600160a01b0316149392505050565b5f8111611b325760405162461bcd60e51b815260206004820152601f60248201527f64656c6179206d7573742062652067726561746572207468616e207a65726f00604482015260640161090f565b611b3b81600155565b50565b612710811115611b605760405162461bcd60e51b815260040161090f9061257d565b5f8111611baf5760405162461bcd60e51b815260206004820152601c60248201527f7468726573686f6c64206d7573742062652061626f7665207a65726f00000000604482015260640161090f565b600655565b5f8060015442611bc49190612342565b90505f8686868685604051602001611be09594939291906125c3565b60408051601f1981840301815282825280516020918201205f8181526002909252919020805460ff1916600117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd90611c489083908a908a908a908a908990612749565b60405180910390a15095945050505050565b611b3b8133611f13565b5f611c6f83836113e0565b611cec575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611ca43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610734565b505f610734565b5f611cfe83836113e0565b15611cec575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610734565b60605f8686868686604051602001611d789594939291906125c3565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16611dc257604051635d96957360e11b81526004810182905260240161090f565b824211611df257604051638e98731160e01b8152600481018290524260248201526044810184905260640161090f565b5f818152600260205260408120805460ff19169055855160609103611e18575083611e44565b858051906020012085604051602001611e3292919061279b565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad37828989898989604051611e7d96959493929190612749565b60405180910390a15f80896001600160a01b03168984604051611ea091906127cb565b5f6040518083038185875af1925050503d805f8114611eda576040519150601f19603f3d011682016040523d82523d5f602084013e611edf565b606091505b509150915081611f065783816040516309ec695360e41b815260040161090f9291906127e6565b9998505050505050505050565b611f1d82826113e0565b6114145760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161090f565b5f60208284031215611f5c575f80fd5b5035919050565b5f60208284031215611f73575f80fd5b81356001600160e01b031981168114611f8a575f80fd5b9392505050565b5f5b83811015611fab578181015183820152602001611f93565b50505f910152565b5f8151808452611fca816020860160208601611f91565b601f01601f19169290920160200192915050565b602081525f611f8a6020830184611fb3565b6001600160a01b0381168114611b3b575f80fd5b5f805f805f60808688031215612018575f80fd5b853561202381611ff0565b9450602086013561203381611ff0565b935060408601359250606086013567ffffffffffffffff80821115612056575f80fd5b818801915088601f830112612069575f80fd5b813581811115612077575f80fd5b896020828501011115612088575f80fd5b9699959850939650602001949392505050565b5f602082840312156120ab575f80fd5b8135611f8a81611ff0565b5f80604083850312156120c7575f80fd5b8235915060208301356120d981611ff0565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561211b5761211b6120e4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561214a5761214a6120e4565b604052919050565b5f67ffffffffffffffff82111561216b5761216b6120e4565b50601f01601f191660200190565b5f61218b61218684612152565b612121565b905082815283838301111561219e575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126121c3575f80fd5b611f8a83833560208501612179565b5f805f805f60a086880312156121e6575f80fd5b85356121f181611ff0565b945060208601359350604086013567ffffffffffffffff80821115612214575f80fd5b61222089838a016121b4565b94506060880135915080821115612235575f80fd5b508601601f81018813612246575f80fd5b61225588823560208401612179565b95989497509295608001359392505050565b634e487b7160e01b5f52602160045260245ffd5b602081016004831061229b57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f602082840312156122b1575f80fd5b813567ffffffffffffffff8111156122c7575f80fd5b6122d3848285016121b4565b949350505050565b600181811c908216806122ef57607f821691505b60208210810361230d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612323575f80fd5b8151611f8a81611ff0565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107345761073461232e565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b818103818111156107345761073461232e565b6020808252602d908201527f61646472657373206973206e6f7420612070726f706f73616c2063726561746560408201526c6420627920746869732064616f60981b606082015260800190565b5f602082840312156123f0575f80fd5b815160058110611f8a575f80fd5b5f6020828403121561240e575f80fd5b5051919050565b80820281158282048414176107345761073461232e565b5f8261244657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61245861218684612152565b905082815283838301111561246b575f80fd5b611f8a836020830184611f91565b5f82601f830112612488575f80fd5b611f8a8383516020850161244b565b5f602082840312156124a7575f80fd5b815167ffffffffffffffff808211156124be575f80fd5b9083019060a082860312156124d1575f80fd5b6124d96120f8565b82516124e481611ff0565b815260208381015190820152604083015182811115612501575f80fd5b8301601f81018713612511575f80fd5b6125208782516020840161244b565b604083015250606083015182811115612537575f80fd5b61254387828601612479565b6060830152506080830151608082015280935050505092915050565b5f60ff821660ff81036125745761257461232e565b60010192915050565b60208082526026908201527f7468726573686f6c642063616e6e6f742062652061626f76652031303030302060408201526528313030252960d01b606082015260800190565b60018060a01b038616815284602082015260a060408201525f6125e960a0830186611fb3565b82810360608401526125fb8186611fb3565b9150508260808301529695505050505050565b601f82111561130b575f81815260208120601f850160051c810160208610156126345750805b601f850160051c820191505b8181101561265357828155600101612640565b505050505050565b815167ffffffffffffffff811115612675576126756120e4565b6126898161268384546122db565b8461260e565b602080601f8311600181146126bc575f84156126a55750858301515b5f19600386901b1c1916600185901b178555612653565b5f85815260208120601f198616915b828110156126ea578886015182559484019460019091019084016126cb565b508582101561270757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b606081525f6127296060830186611fb3565b6001600160a01b0394851660208401529290931660409091015292915050565b86815260018060a01b038616602082015284604082015260c060608201525f61277560c0830186611fb3565b82810360808401526127878186611fb3565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906127bd816004850160208701611f91565b919091016004019392505050565b5f82516127dc818460208701611f91565b9190910192915050565b828152604060208201525f6122d36040830184611fb356fea2646970667358221220ac9ebd06de79e5a687515ed3eaed5e5803fd689e769a6d743cb14d773fe4eb0564736f6c63430008140033f591dda2e9b53c180cef2a1f29bc285ccc0649b7a0efc8de2ec0cfe024d46b96f8450c7be9c60a2b1311317b8f68d216b82a7116d8d7c927eb7554832e0cb05aa26469706673582212204bc4463225e0e6bc9ee1d438d609286f7778949f0ea70045ec6c3f346f8293c864736f6c63430008140033","sourceMap":"124:263:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;181:135;;;:::i;:::-;;2907:134:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3823:151;;;:::i;:::-;;;;;;;:::i;3684:133::-;;;:::i;322:63:75:-;;;:::i;3385:141:27:-;;;:::i;156:18:75:-;;;;;;;;-1:-1:-1;;;;;156:18:75;;;;;;-1:-1:-1;;;;;3043:32:76;;;3025:51;;3013:2;2998:18;156::75;2854:228:76;3193:186:27;;;:::i;:::-;;;;;;;:::i;3047:140::-;;;:::i;:::-;;;;;;;:::i;3532:146::-;;;:::i;:::-;;;;;;;:::i;2754:147::-;;;:::i;2459:141::-;;;:::i;1243:204:23:-;;;:::i;:::-;;;6798:14:76;;6791:22;6773:41;;6761:2;6746:18;1243:204:23;6633:187:76;2606:142:27;;;:::i;1016:26:34:-;;;;;;;;;181:135:75;265:4;280;287:1;298:4;305:3;221:88;;;;;:::i;:::-;7286:3:76;7268:22;;;7327:1;7306:19;;;7299:30;;;-1:-1:-1;;;7360:3:76;7345:19;;7338:39;7396:3;7430:4;7415:20;;7408:32;;;7456:18;;7449:29;-1:-1:-1;;;7509:3:76;7494:19;;7487:39;-1:-1:-1;;;;;7636:15:76;;;7631:2;7616:18;;7609:43;7688:15;;;7683:2;7668:18;;7661:43;-1:-1:-1;7720:19:76;;7713:35;;;;7785:15;;;-1:-1:-1;7764:19:76;;7757:44;-1:-1:-1;7817:19:76;;7810:35;;;;7558:3;7543:19;221:88:75;;;;;;;;;;;;;;;;;;;;;;;215:3;;:94;;;;;-1:-1:-1;;;;;215:94:75;;;;;-1:-1:-1;;;;;215:94:75;;;;;;181:135::o;2907:134:27:-;2954:33;3018:16;2999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:35:27;;;;;;;;;;;;;;;;;;;;;;;2907:134;:::o;3823:151::-;3872:42;3948:19;3926:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3926:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:151;:::o;3684:133::-;3730:33;3794:16;3775:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3775:35:27;;;;;;;;;;;;;;;;;;;;;;3684:133;:::o;322:63:75:-;362:16;373:4;362:10;:16::i;:::-;322:63::o;3385:141:27:-;3433:35;3501:18;3480:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3480:39:27;;;;;;;;;;;;;;;;;;;;;;3385:141;:::o;3193:186::-;3249:56;3346:26;3317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3317:55:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3047:140;3095:34;3162:18;3141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:146;3580:40;3653:18;3632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:147;2803:40;2876:18;2855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:141;2508:34;2575:18;2554:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:23;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:23;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:23;;:7;:39;;;8415:51:76;;;-1:-1:-1;;;8482:18:76;;;8475:34;1428:1:23;;1377:7;;8388:18:76;;1377:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2606:142:27:-;2655:35;2723:18;2702:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2702:39:27;;;;;;;;;;;;;;;;;;;;;;2606:142;:::o;1594:89:23:-;1657:19;;-1:-1:-1;;;1657:19:23;;6798:14:76;;6791:22;1657:19:23;;;6773:41:76;1657:13:23;;;;6746:18:76;;1657:19:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;-1:-1:-1:-;;;;;;;;:::o;14:658:76:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:195;465:6;462:1;459:13;451:195;;;530:13;;-1:-1:-1;;;;;526:39:76;514:52;;621:15;;;;586:12;;;;562:1;480:9;451:195;;;-1:-1:-1;663:3:76;;14:658;-1:-1:-1;;;;;;14:658:76:o;677:423::-;719:3;757:5;751:12;784:6;779:3;772:19;809:1;819:162;833:6;830:1;827:13;819:162;;;895:4;951:13;;;947:22;;941:29;923:11;;;919:20;;912:59;848:12;819:162;;;823:3;1026:1;1019:4;1010:6;1005:3;1001:16;997:27;990:38;1089:4;1082:2;1078:7;1073:2;1065:6;1061:15;1057:29;1052:3;1048:39;1044:50;1037:57;;;677:423;;;;:::o;1105:1744::-;1340:2;1392:21;;;1462:13;;1365:18;;;1484:22;;;1311:4;;1340:2;1525;;1543:18;;;;1580:1;1623:15;;;1608:31;;1604:40;;1667:15;;;1311:4;;1731:1089;1747:6;1742:3;1739:15;1731:1089;;;-1:-1:-1;;1816:22:76;;;1812:36;1800:49;;1872:13;;1959:9;;-1:-1:-1;;;;;1955:35:76;1940:51;;2030:11;;2024:18;2062:15;;;2055:27;;;2143:19;;1912:15;;;2175:24;;;2356:21;;;;2222:2;2304:17;;;2292:30;;2288:39;;;2246:15;;;;2401:1;2415:296;2431:8;2426:3;2423:17;2415:296;;;2537:2;2533:7;2524:6;2516;2512:19;2508:33;2501:5;2494:48;2569:42;2604:6;2593:8;2587:15;2569:42;:::i;:::-;2640:17;;;;2559:52;-1:-1:-1;2683:14:76;;;;2459:1;2450:11;2415:296;;;-1:-1:-1;;;2798:12:76;;;;2734:6;-1:-1:-1;;2763:15:76;;;;1773:1;1764:11;1731:1089;;;-1:-1:-1;2837:6:76;;1105:1744;-1:-1:-1;;;;;;;;;;1105:1744:76:o;3087:461::-;3139:3;3177:5;3171:12;3204:6;3199:3;3192:19;3230:4;3259:2;3254:3;3250:12;3243:19;;3296:2;3289:5;3285:14;3317:1;3327:196;3341:6;3338:1;3335:13;3327:196;;;3406:13;;-1:-1:-1;;;;;;3402:40:76;3390:53;;3463:12;;;;3498:15;;;;3363:1;3356:9;3327:196;;;-1:-1:-1;3539:3:76;;3087:461;-1:-1:-1;;;;;3087:461:76:o;3553:1187::-;3773:4;3802:2;3842;3831:9;3827:18;3872:2;3861:9;3854:21;3895:6;3930;3924:13;3961:6;3953;3946:22;3987:2;3977:12;;4020:2;4009:9;4005:18;3998:25;;4082:2;4072:6;4069:1;4065:14;4054:9;4050:30;4046:39;4120:2;4112:6;4108:15;4141:1;4151:560;4165:6;4162:1;4159:13;4151:560;;;4230:22;;;-1:-1:-1;;4226:36:76;4214:49;;4286:13;;4332:9;;4354:18;;;4399:48;4431:15;;;4332:9;4399:48;:::i;:::-;4488:11;;;4482:18;4537:19;;;4520:15;;;4513:44;4482:18;4385:62;-1:-1:-1;4580:51:76;4385:62;4482:18;4580:51;:::i;:::-;4689:12;;;;4570:61;-1:-1:-1;;;4654:15:76;;;;4187:1;4180:9;4151:560;;;-1:-1:-1;4728:6:76;;3553:1187;-1:-1:-1;;;;;;;;3553:1187:76:o;4745:803::-;4907:4;4936:2;4976;4965:9;4961:18;5006:2;4995:9;4988:21;5029:6;5064;5058:13;5095:6;5087;5080:22;5133:2;5122:9;5118:18;5111:25;;5195:2;5185:6;5182:1;5178:14;5167:9;5163:30;5159:39;5145:53;;5233:2;5225:6;5221:15;5254:1;5264:255;5278:6;5275:1;5272:13;5264:255;;;5371:2;5367:7;5355:9;5347:6;5343:22;5339:36;5334:3;5327:49;5399:40;5432:6;5423;5417:13;5399:40;:::i;:::-;5389:50;-1:-1:-1;5497:12:76;;;;5462:15;;;;5300:1;5293:9;5264:255;;;-1:-1:-1;5536:6:76;;4745:803;-1:-1:-1;;;;;;;4745:803:76:o;5553:1075::-;5757:4;5786:2;5826;5815:9;5811:18;5856:2;5845:9;5838:21;5879:6;5914;5908:13;5945:6;5937;5930:22;5971:2;5961:12;;6004:2;5993:9;5989:18;5982:25;;6066:2;6056:6;6053:1;6049:14;6038:9;6034:30;6030:39;6104:2;6096:6;6092:15;6125:1;6135:464;6149:6;6146:1;6143:13;6135:464;;;6214:22;;;-1:-1:-1;;6210:36:76;6198:49;;6270:13;;6315:9;;-1:-1:-1;;;;;6311:35:76;6296:51;;6386:11;;6380:18;6418:15;;;6411:27;;;6461:58;6503:15;;;6380:18;6461:58;:::i;:::-;6577:12;;;;6451:68;-1:-1:-1;;6542:15:76;;;;6171:1;6164:9;6135:464;;7856:380;7935:1;7931:12;;;;7978;;;7999:61;;8053:4;8045:6;8041:17;8031:27;;7999:61;8106:2;8098:6;8095:14;8075:18;8072:38;8069:161;;8152:10;8147:3;8143:20;8140:1;8133:31;8187:4;8184:1;8177:15;8215:4;8212:1;8205:15;8069:161;;7856:380;;;:::o;8520:184::-;8590:6;8643:2;8631:9;8622:7;8618:23;8614:32;8611:52;;;8659:1;8656;8649:12;8611:52;-1:-1:-1;8682:16:76;;8520:184;-1:-1:-1;8520:184:76:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","dao()":"4162169f","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testExample()":"3f5a4a2a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dao\",\"outputs\":[{\"internalType\":\"contract OGREDAO\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testExample\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/OGRETest.t.sol\":\"OGRETest\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"src/OGREDAO.sol\":{\"keccak256\":\"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5\",\"dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7\"]},\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/interfaces/IOGREProposal.sol\":{\"keccak256\":\"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f\",\"dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT\"]},\"src/interfaces/IOGREProposalFactory.sol\":{\"keccak256\":\"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666\",\"dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc\",\"dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb\"]},\"src/libraries/Enums.sol\":{\"keccak256\":\"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba\",\"dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc\",\"dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk\"]},\"test/OGRETest.t.sol\":{\"keccak256\":\"0x0bc538d4c702286d6f76620b09ed73ce7dad239c89b7caa0708b0103aada352c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://48fd6094f6105e5314fc6d0fd9b91d7da144d9820c11691cd42bd728b7ad4d45\",\"dweb:/ipfs/QmdY9RWKoBsK81HVfoNoSckS4ULv4qGNEigufjiy1bQZd8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dao","outputs":[{"internalType":"contract OGREDAO","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testExample"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/OGRETest.t.sol":"OGRETest"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"src/OGREDAO.sol":{"keccak256":"0xdb289bcf604d0d28daf852f00b8aae7e3f5bd08932295a2bf3cbb1a8757de821","urls":["bzz-raw://ea9cd1603893961d8c3c783e6996beb351dd235616a6e81e3240ada8ca9139d5","dweb:/ipfs/QmPKvQnPd4cGVhsoqZHcAVnK6uUBzhK4qqRQkhME4HY2o7"],"license":"UNLICENSED"},"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/interfaces/IOGREProposal.sol":{"keccak256":"0xc38994cd6e8535f96bb28c14f300bbbc6f3c35ca582eb76b149ba1f5fecf6b56","urls":["bzz-raw://10265153b16d7cf14399ca9a6594f914c470f3b4513e3700f91b8a2027614a2f","dweb:/ipfs/QmRd2jSu7ZVWCiT82A5aQYYVWnUyFZeGgZmSu7PkaCNHpT"],"license":"UNLICENSED"},"src/interfaces/IOGREProposalFactory.sol":{"keccak256":"0x8a3d75c2f831480b71fcb909e20b7d5dfa33cadb385f12d3c07cf629f77fe6a3","urls":["bzz-raw://5099d4307272eb491444b1c54148923f56c6bb4d767168c11e5dad2122cdf666","dweb:/ipfs/QmbiSZqLyR82cwzffZRkrmv7oHHkQg8aR5cNapdikftbyF"],"license":"UNLICENSED"},"src/libraries/Constants.sol":{"keccak256":"0x97cc39f86dd6c13d84d947426be14deeb38395f7e6aa76de70bc2d6bead8f642","urls":["bzz-raw://f4807bfb85e2c5d6d8512d39b42e89743b9e60cc8430c989f9c51f936aeb8fdc","dweb:/ipfs/QmYYmzDBg7DaEVLgd4nEDn3DkKndpkhfqEVz7ejZsZBoFb"],"license":"UNLICENSED"},"src/libraries/Enums.sol":{"keccak256":"0xe74468508bc90301e3e1ab1f14fa84316ae5c2ddd268fc20fb2dac7664aaed9e","urls":["bzz-raw://a56d054e3197421aec7f2c625abbae39b61ca95e355500fc28961382674007ba","dweb:/ipfs/QmPxV38SL4eQo6NtYD717NWBzWd6G4DGpC9DakRU7BkTPZ"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xd740ecb69dd6b819bdbddf0e768a80af6e1653b3bca4a769e674e2908d0c9d08","urls":["bzz-raw://c3fb90df5c9e850284b65f797c87d9cb584f5faab798c5b2d106d860467b12cc","dweb:/ipfs/QmRzXnLe3FeC7rq1BuzA5TRSc4tzdBQeuhbu1aTQ53JrRk"],"license":"UNLICENSED"},"test/OGRETest.t.sol":{"keccak256":"0x0bc538d4c702286d6f76620b09ed73ce7dad239c89b7caa0708b0103aada352c","urls":["bzz-raw://48fd6094f6105e5314fc6d0fd9b91d7da144d9820c11691cd42bd728b7ad4d45","dweb:/ipfs/QmdY9RWKoBsK81HVfoNoSckS4ULv4qGNEigufjiy1bQZd8"],"license":"UNLICENSED"}},"version":1},"id":75} \ No newline at end of file diff --git a/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json b/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json deleted file mode 100644 index 7eba2b8..0000000 --- a/out/OGRETokenizedMarket.sol/OGRETokenizedMarket.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"erc721FactoryAddress_","type":"address","internalType":"address"},{"name":"treasuryContractAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelTokenizedOrder","inputs":[{"name":"listingTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createTokenizedOrder","inputs":[{"name":"orderType","type":"uint8","internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offer","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"request","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"fulfillTokenizedOrder","inputs":[{"name":"fulfillmentTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fulfillmentTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"listingTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"listings","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"orderType","type":"uint8","internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offered","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"requested","type":"tuple","internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","internalType":"uint256"},{"name":"fulfillmentTokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"matchTokenizedOrder","inputs":[{"name":"listingTokenIdA","type":"uint256","internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint256","internalType":"uint256"},{"name":"autofill","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"matches","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"listingTokenIdA","type":"uint256","internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","internalType":"uint256"},{"name":"expiration","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"treasuryContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"TokenizedMarketCreated","inputs":[{"name":"erc721Factory","type":"address","indexed":false,"internalType":"address"},{"name":"listingTokenContract","type":"address","indexed":false,"internalType":"address"},{"name":"fulfillmentTokenContract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenizedOrderCreated","inputs":[{"name":"orderType","type":"uint8","indexed":false,"internalType":"enum OGRETokenizedMarket.OrderType"},{"name":"offer","type":"tuple","indexed":false,"internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"request","type":"tuple","indexed":false,"internalType":"struct OGRETokenizedMarket.OrderItem","components":[{"name":"itemType","type":"uint8","internalType":"enum OGRETokenizedMarket.ItemType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]},{"name":"expiration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"listingTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenizedOrderFulfilled","inputs":[{"name":"fulfillmentTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fulfiller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenizedOrderMatched","inputs":[{"name":"listingTokenIdA","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"listingTokenIdB","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fulfillmentTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"expiration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"matcher","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801562000010575f80fd5b50604051620026e7380380620026e7833981016040819052620000339162000254565b6001600160a01b0381811660c09081526040516377b24c1360e11b815260606004820152602260648201527f4f475245546f6b656e697a65644d61726b6574204c697374696e6720546f6b656084820152616e7360f01b60a48201526024810191909152600760c4820152664c495354494e4760c81b60e4820152306044820152839182169063ef64982690610104016020604051808303815f875af1158015620000e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200010691906200028a565b6001600160a01b039081166080526040516377b24c1360e11b815260606004820152602660648201527f4f475245546f6b656e697a65644d61726b65742046756c66696c6c6d656e7420608482015265546f6b656e7360d01b60a482015260c06024820152600760c4820152661195531192531360ca1b60e48201523060448201529082169063ef64982690610104016020604051808303815f875af1158015620001b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d991906200028a565b6001600160a01b0390811660a0819052608051604080518785168152919093166020820152918201527f088f49341c928c39e2d02c39f829b4cd859dd236c6e034efd02fb7db5ce741ee9060600160405180910390a1505050620002ad565b80516001600160a01b03811681146200024f575f80fd5b919050565b5f806040838503121562000266575f80fd5b620002718362000238565b9150620002816020840162000238565b90509250929050565b5f602082840312156200029b575f80fd5b620002a68262000238565b9392505050565b60805160a05160c0516123b4620003335f395f818161013501528181610c5801528181611d550152611dc601525f81816102210152818161026501528181610879015261169401525f81816101be015281816105d80152818161066b0152818161090b0152818161098701528181610e14015281816118150152611f2501526123b45ff3fe608060405260043610610084575f3560e01c8063daa5dc2a11610057578063daa5dc2a1461016f578063dca764951461018e578063dce74418146101ad578063de74e57b146101e0578063fab7920214610210575f80fd5b8063031e6c34146100885780634768d4ef146100a957806365b8f69214610103578063be1343e614610124575b5f80fd5b348015610093575f80fd5b506100a76100a23660046120b7565b610243565b005b3480156100b4575f80fd5b506100e36100c33660046120b7565b60036020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101166101113660046120de565b610df9565b6040519081526020016100fa565b34801561012f575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100fa565b34801561017a575f80fd5b506100a76101893660046120b7565b6117f3565b348015610199575f80fd5b506101166101a83660046121a9565b6118d8565b3480156101b8575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb575f80fd5b506101ff6101fa3660046120b7565b611fd2565b6040516100fa959493929190612253565b34801561021b575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce9190612290565b6001600160a01b0316146103345760405162461bcd60e51b815260206004820152602260248201527f73656e646572206e6f742066756c66696c6c6d656e7420746f6b656e206f776e60448201526132b960f11b60648201526084015b60405180910390fd5b5f828152600360208181526040808420815160608101835281548082526001830154828601526002928301548285015286529252808420815160a08101909252805492949391929091839160ff1690811115610392576103926121f9565b60038111156103a3576103a36121f9565b81526040805160608101909152600183810180546020909401939091839160ff16908111156103d4576103d46121f9565b60018111156103e5576103e56121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561043b5761043b6121f9565b600181111561044c5761044c6121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401548382015260069093015491810191909152848201515f9081526002909252808220815160a0810190925280549394509192909190829060ff1660038111156104c5576104c56121f9565b60038111156104d6576104d66121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610507576105076121f9565b6001811115610518576105186121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561056e5761056e6121f9565b600181111561057f5761057f6121f9565b81526020015f820160019054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152505081526020016005820154815260200160068201548152505090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e855f01516040518263ffffffff1660e01b815260040161062791815260200190565b602060405180830381865afa158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190612290565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e86602001516040518263ffffffff1660e01b81526004016106bb91815260200190565b602060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612290565b905060035f8881526020019081526020015f205f8082015f9055600182015f9055600282015f9055505060025f865f015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f9055505060025f866020015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f905550507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166342966c686001546040518263ffffffff1660e01b81526004016108c791815260200190565b5f604051808303815f87803b1580156108de575f80fd5b505af11580156108f0573d5f803e3d5ffd5b50508651604051630852cd8d60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610956575f80fd5b505af1158015610968573d5f803e3d5ffd5b5050506020860151604051630852cd8d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506342966c68916109bf9160040190815260200190565b5f604051808303815f87803b1580156109d6575f80fd5b505af11580156109e8573d5f803e3d5ffd5b505f92506109f4915050565b84516003811115610a0757610a076121f9565b03610b0f5760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610a4a9130918791906004016122b2565b6020604051808303815f875af1158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a91906122d6565b5060408084015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610ac99130918691906004016122b2565b6020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0991906122d6565b50610df0565b600184516003811115610b2457610b246121f9565b03610c185760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610b679130918791906004016122b2565b6020604051808303815f875af1158015610b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba791906122d6565b506040808401516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610be69130918691906004016122b2565b5f604051808303815f87803b158015610bfd575f80fd5b505af1158015610c0f573d5f803e3d5ffd5b50505050610df0565b600284516003811115610c2d57610c2d6121f9565b03610d0057602080850151908101516040918201519151635b95647560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b72ac8ea92610c8e928692906004016122b2565b5f604051808303815f87803b158015610ca5575f80fd5b505af1158015610cb7573d5f803e3d5ffd5b50505060208085015190810151604091820151915163a9059cbb60e01b81526001600160a01b03868116600483015260248201939093529116915063a9059cbb90604401610ac9565b600384516003811115610d1557610d156121f9565b03610df0576040808501516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610d589130918791906004016122b2565b5f604051808303815f87803b158015610d6f575f80fd5b505af1158015610d81573d5f803e3d5ffd5b5050506040808501516020810151908201519151632142170760e11b81526001600160a01b0390911692506342842e0e91610dc291309186916004016122b2565b5f604051808303815f87803b158015610dd9575f80fd5b505af1158015610deb573d5f803e3d5ffd5b505050505b50505050505050565b5f84815260026020526040808220815160a0810190925280547f00000000000000000000000000000000000000000000000000000000000000009284929091829060ff166003811115610e4e57610e4e6121f9565b6003811115610e5f57610e5f6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610e9057610e906121f9565b6001811115610ea157610ea16121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115610ef757610ef76121f9565b6001811115610f0857610f086121f9565b8152815461010090046001600160a01b0316602080830191909152600190920154604091820152918352600584015483820152600690930154918101919091525f8981526002909252808220815160a0810190925280549394509192909190829060ff166003811115610f7d57610f7d6121f9565b6003811115610f8e57610f8e6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610fbf57610fbf6121f9565b6001811115610fd057610fd06121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115611026576110266121f9565b6001811115611037576110376121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401549083015260069092015491015290505f61108087426122f1565b905082608001515f146110d55760405162461bcd60e51b815260206004820152601760248201527f6f72646572206120616c7265616479206d617463686564000000000000000000604482015260640161032b565b6080820151156111275760405162461bcd60e51b815260206004820152601760248201527f6f72646572206220616c7265616479206d617463686564000000000000000000604482015260640161032b565b428360600151116111705760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818481a185cc8195e1c1a5c9959606a1b604482015260640161032b565b428260600151116111b95760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818881a185cc8195e1c1a5c9959606a1b604482015260640161032b565b808360600151116112185760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526272206160e81b606482015260840161032b565b808260600151116112775760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526239103160e91b606482015260840161032b565b5f8351600381111561128b5761128b6121f9565b036112f6575f825160038111156112a4576112a46121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682031000000000000604482015260640161032b565b61146a565b60018351600381111561130b5761130b6121f9565b0361137257600282516003811115611325576113256121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682032000000000000604482015260640161032b565b600283516003811115611387576113876121f9565b036113ee576001825160038111156113a1576113a16121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682033000000000000604482015260640161032b565b600383516003811115611403576114036121f9565b0361146a5760038251600381111561141d5761141d6121f9565b1461146a5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682034000000000000604482015260640161032b565b8160400151602001516001600160a01b03168360200151602001516001600160a01b0316146114ef5760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a34ba341037b93232b9103160a91b606482015260840161032b565b8260400151602001516001600160a01b03168260200151602001516001600160a01b0316146115745760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a697468206f72646572206160a81b606482015260840161032b565b816040015160400151836020015160400151146115e95760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c103bb4ba341037b93232b9103160991b606482015260840161032b565b8260400151604001518260200151604001511461165e5760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c2077697468206f72646572206160981b606482015260840161032b565b6001805f82825461166f91906122f1565b90915550506001546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b5050505060015460025f8b81526020019081526020015f206006018190555060015460025f8a81526020019081526020015f20600601819055505f60405180606001604052808b81526020018a81526020018381525090508060035f60015481526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050507f24142722f1b2336f069f0fb228e80e81a454234dd7344d63db12e4e156a725f68a8a60015485336040516117da9594939291909485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405180910390a1505060015498975050505050505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187e9190612290565b6001600160a01b0316146118d45760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206c697374696e6720746f6b656e206f776e65720000604482015260640161032b565b5050565b5f60015f808282546118ea91906122f1565b925050819055505f6040518060a0016040528087600381111561190f5761190f6121f9565b815260208082018890526040808301889052606083018790525f60809093018390528254835260029091529020815181549293508392829060ff1916600183600381111561195f5761195f6121f9565b02179055506020820151805160018084018054909291839160ff191690838181111561198d5761198d6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560409182015160019182015590830151805160038401805492939092839160ff199091169083818111156119ee576119ee6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155606082015160058201556080909101516006909101555f85516001811115611a4f57611a4f6121f9565b03611c5c575f856040015111611aa75760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f74206f66666572207a65726f20657263323020746f6b656e730000604482015260640161032b565b60208501516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611aef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b139190612316565b905085602001516001600160a01b03166323b872dd333089604001516040518463ffffffff1660e01b8152600401611b4d939291906122b2565b6020604051808303815f875af1158015611b69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122d6565b506040860151611b9d90826122f1565b60208701516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190612316565b14611c565760405162461bcd60e51b815260206004820152601960248201527f657263323020746f6b656e73206e6f7420726563656976656400000000000000604482015260640161032b565b50611f06565b600185516001811115611c7157611c716121f9565b03611ebe57602085015160408087015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce99190612290565b6001600160a01b031614611d3f5760405162461bcd60e51b815260206004820152601760248201527f73656e646572206e6f7420657263373231206f776e6572000000000000000000604482015260640161032b565b84602001516001600160a01b03166323b872dd337f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401611d97939291906122b2565b5f604051808303815f87803b158015611dae575f80fd5b505af1158015611dc0573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685602001516001600160a01b0316636352211e87604001516040518263ffffffff1660e01b8152600401611e2491815260200190565b602060405180830381865afa158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e639190612290565b6001600160a01b031614611eb95760405162461bcd60e51b815260206004820152601960248201527f65726337323120746f6b656e206e6f7420726563656976656400000000000000604482015260640161032b565b611f06565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206974656d207479706520696e206f66666572000000000000604482015260640161032b565b5f546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b158015611f6e575f80fd5b505af1158015611f80573d5f803e3d5ffd5b505050507f07f0d8a8500bb0556bb8f8eb2d27a5cedefe472dd0e4703b5711cdac02f1a9c986868686335f54604051611fbe9695949392919061232d565b60405180910390a150505f54949350505050565b60026020525f90815260409081902080548251606081019093526001808301805460ff93841695939192849290911690811115612011576120116121f9565b6001811115612022576120226121f9565b8152815461010090046001600160a01b0316602082015260019182015460409182015280516060810190915260038401805493949391929091839160ff90911690811115612072576120726121f9565b6001811115612083576120836121f9565b8152815461010090046001600160a01b03166020820152600190910154604090910152600582015460069092015490919085565b5f602082840312156120c7575f80fd5b5035919050565b80151581146120db575f80fd5b50565b5f805f80608085870312156120f1575f80fd5b8435935060208501359250604085013591506060850135612111816120ce565b939692955090935050565b6001600160a01b03811681146120db575f80fd5b5f60608284031215612140575f80fd5b6040516060810181811067ffffffffffffffff8211171561216f57634e487b7160e01b5f52604160045260245ffd5b604052905080823560028110612183575f80fd5b815260208301356121938161211c565b6020820152604092830135920191909152919050565b5f805f8061010085870312156121bd575f80fd5b8435600481106121cb575f80fd5b93506121da8660208701612130565b92506121e98660808701612130565b9396929550929360e00135925050565b634e487b7160e01b5f52602160045260245ffd5b6004811061221d5761221d6121f9565b9052565b805160028110612233576122336121f9565b82526020818101516001600160a01b031690830152604090810151910152565b6101208101612262828861220d565b61226f6020830187612221565b61227c6080830186612221565b60e082019390935261010001529392505050565b5f602082840312156122a0575f80fd5b81516122ab8161211c565b9392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156122e6575f80fd5b81516122ab816120ce565b8082018082111561231057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215612326575f80fd5b5051919050565b610140810161233c828961220d565b6123496020830188612221565b6123566080830187612221565b60e08201949094526001600160a01b039290921661010083015261012090910152939250505056fea264697066735822122035c8a9a3f3913bf7bc06ca896d10b6a21032fd5460c8786c5a77018ff3591b3f64736f6c63430008140033","sourceMap":"1281:15499:46:-:0;;;3622:893;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3709:50:46;;;;;;;3928:86;;-1:-1:-1;;;3928:86:46;;825:2:76;3928:86:46;;;807:21:76;864:2;844:18;;;837:30;904:34;883:19;;;876:63;-1:-1:-1;;;955:19:76;;;948:33;997:20;;;990:33;;;;1060:1;1039:19;;;1032:30;-1:-1:-1;;;1078:19:76;;;1071:38;4008:4:46;1161:18:76;;;1154:60;3812:21:46;;3928:22;;;;;1126:19:76;;3928:86:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3898:116:46;;;;;4295:90;;-1:-1:-1;;;4295:90:46;;1769:2:76;4295:90:46;;;1751:21:76;1808:2;1788:18;;;1781:30;1848:34;1827:19;;;1820:63;-1:-1:-1;;;1899:19:76;;;1892:37;1967:3;1945:20;;;1938:33;2008:1;1987:19;;;1980:30;-1:-1:-1;;;2026:19:76;;;2019:38;4379:4:46;2109:18:76;;;2102:60;4295:22:46;;;;;;2074:19:76;;4295:90:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4261:124:46;;;;;;;4447:27;;4401:107;;;2431:15:76;;;2413:34;;2483:15;;;;2478:2;2463:18;;2456:43;2515:18;;;2508:43;4401:107:46;;2363:2:76;2348:18;4401:107:46;;;;;;;3699:816;3622:893;;1281:15499;;14:177:76;93:13;;-1:-1:-1;;;;;135:31:76;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;1225:208::-;1295:6;1348:2;1336:9;1327:7;1323:23;1319:32;1316:52;;;1364:1;1361;1354:12;1316:52;1387:40;1417:9;1387:40;:::i;:::-;1377:50;1225:208;-1:-1:-1;;;1225:208:76:o;2173:384::-;1281:15499:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610084575f3560e01c8063daa5dc2a11610057578063daa5dc2a1461016f578063dca764951461018e578063dce74418146101ad578063de74e57b146101e0578063fab7920214610210575f80fd5b8063031e6c34146100885780634768d4ef146100a957806365b8f69214610103578063be1343e614610124575b5f80fd5b348015610093575f80fd5b506100a76100a23660046120b7565b610243565b005b3480156100b4575f80fd5b506100e36100c33660046120b7565b60036020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b6101166101113660046120de565b610df9565b6040519081526020016100fa565b34801561012f575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100fa565b34801561017a575f80fd5b506100a76101893660046120b7565b6117f3565b348015610199575f80fd5b506101166101a83660046121a9565b6118d8565b3480156101b8575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb575f80fd5b506101ff6101fa3660046120b7565b611fd2565b6040516100fa959493929190612253565b34801561021b575f80fd5b506101577f000000000000000000000000000000000000000000000000000000000000000081565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156102aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ce9190612290565b6001600160a01b0316146103345760405162461bcd60e51b815260206004820152602260248201527f73656e646572206e6f742066756c66696c6c6d656e7420746f6b656e206f776e60448201526132b960f11b60648201526084015b60405180910390fd5b5f828152600360208181526040808420815160608101835281548082526001830154828601526002928301548285015286529252808420815160a08101909252805492949391929091839160ff1690811115610392576103926121f9565b60038111156103a3576103a36121f9565b81526040805160608101909152600183810180546020909401939091839160ff16908111156103d4576103d46121f9565b60018111156103e5576103e56121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561043b5761043b6121f9565b600181111561044c5761044c6121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401548382015260069093015491810191909152848201515f9081526002909252808220815160a0810190925280549394509192909190829060ff1660038111156104c5576104c56121f9565b60038111156104d6576104d66121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610507576105076121f9565b6001811115610518576105186121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff169081111561056e5761056e6121f9565b600181111561057f5761057f6121f9565b81526020015f820160019054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152505081526020016005820154815260200160068201548152505090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e855f01516040518263ffffffff1660e01b815260040161062791815260200190565b602060405180830381865afa158015610642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106669190612290565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e86602001516040518263ffffffff1660e01b81526004016106bb91815260200190565b602060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612290565b905060035f8881526020019081526020015f205f8082015f9055600182015f9055600282015f9055505060025f865f015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f9055505060025f866020015181526020019081526020015f205f8082015f6101000a81549060ff0219169055600182015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600382015f8082015f6101000a81549060ff02191690555f820160016101000a8154906001600160a01b030219169055600182015f90555050600582015f9055600682015f905550507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166342966c686001546040518263ffffffff1660e01b81526004016108c791815260200190565b5f604051808303815f87803b1580156108de575f80fd5b505af11580156108f0573d5f803e3d5ffd5b50508651604051630852cd8d60e31b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610956575f80fd5b505af1158015610968573d5f803e3d5ffd5b5050506020860151604051630852cd8d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506342966c68916109bf9160040190815260200190565b5f604051808303815f87803b1580156109d6575f80fd5b505af11580156109e8573d5f803e3d5ffd5b505f92506109f4915050565b84516003811115610a0757610a076121f9565b03610b0f5760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610a4a9130918791906004016122b2565b6020604051808303815f875af1158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a91906122d6565b5060408084015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610ac99130918691906004016122b2565b6020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0991906122d6565b50610df0565b600184516003811115610b2457610b246121f9565b03610c185760408085015160208101519082015191516323b872dd60e01b81526001600160a01b03909116916323b872dd91610b679130918791906004016122b2565b6020604051808303815f875af1158015610b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba791906122d6565b506040808401516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610be69130918691906004016122b2565b5f604051808303815f87803b158015610bfd575f80fd5b505af1158015610c0f573d5f803e3d5ffd5b50505050610df0565b600284516003811115610c2d57610c2d6121f9565b03610d0057602080850151908101516040918201519151635b95647560e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263b72ac8ea92610c8e928692906004016122b2565b5f604051808303815f87803b158015610ca5575f80fd5b505af1158015610cb7573d5f803e3d5ffd5b50505060208085015190810151604091820151915163a9059cbb60e01b81526001600160a01b03868116600483015260248201939093529116915063a9059cbb90604401610ac9565b600384516003811115610d1557610d156121f9565b03610df0576040808501516020810151908201519151632142170760e11b81526001600160a01b03909116916342842e0e91610d589130918791906004016122b2565b5f604051808303815f87803b158015610d6f575f80fd5b505af1158015610d81573d5f803e3d5ffd5b5050506040808501516020810151908201519151632142170760e11b81526001600160a01b0390911692506342842e0e91610dc291309186916004016122b2565b5f604051808303815f87803b158015610dd9575f80fd5b505af1158015610deb573d5f803e3d5ffd5b505050505b50505050505050565b5f84815260026020526040808220815160a0810190925280547f00000000000000000000000000000000000000000000000000000000000000009284929091829060ff166003811115610e4e57610e4e6121f9565b6003811115610e5f57610e5f6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610e9057610e906121f9565b6001811115610ea157610ea16121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115610ef757610ef76121f9565b6001811115610f0857610f086121f9565b8152815461010090046001600160a01b0316602080830191909152600190920154604091820152918352600584015483820152600690930154918101919091525f8981526002909252808220815160a0810190925280549394509192909190829060ff166003811115610f7d57610f7d6121f9565b6003811115610f8e57610f8e6121f9565b81526040805160608101909152600183810180546020909401939091839160ff1690811115610fbf57610fbf6121f9565b6001811115610fd057610fd06121f9565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301529284528051606081019091526003850180549490930193909291839160ff1690811115611026576110266121f9565b6001811115611037576110376121f9565b8152815461010090046001600160a01b031660208083019190915260019092015460409182015291835260058401549083015260069092015491015290505f61108087426122f1565b905082608001515f146110d55760405162461bcd60e51b815260206004820152601760248201527f6f72646572206120616c7265616479206d617463686564000000000000000000604482015260640161032b565b6080820151156111275760405162461bcd60e51b815260206004820152601760248201527f6f72646572206220616c7265616479206d617463686564000000000000000000604482015260640161032b565b428360600151116111705760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818481a185cc8195e1c1a5c9959606a1b604482015260640161032b565b428260600151116111b95760405162461bcd60e51b81526020600482015260136024820152721bdc99195c8818881a185cc8195e1c1a5c9959606a1b604482015260640161032b565b808360600151116112185760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526272206160e81b606482015260840161032b565b808260600151116112775760405162461bcd60e51b815260206004820152602360248201527f6d617463682065787069726174696f6e206c61746572207468616e206f72646560448201526239103160e91b606482015260840161032b565b5f8351600381111561128b5761128b6121f9565b036112f6575f825160038111156112a4576112a46121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682031000000000000604482015260640161032b565b61146a565b60018351600381111561130b5761130b6121f9565b0361137257600282516003811115611325576113256121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682032000000000000604482015260640161032b565b600283516003811115611387576113876121f9565b036113ee576001825160038111156113a1576113a16121f9565b146112f15760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682033000000000000604482015260640161032b565b600383516003811115611403576114036121f9565b0361146a5760038251600381111561141d5761141d6121f9565b1461146a5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206f726465722074797065206d617463682034000000000000604482015260640161032b565b8160400151602001516001600160a01b03168360200151602001516001600160a01b0316146114ef5760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a34ba341037b93232b9103160a91b606482015260840161032b565b8260400151602001516001600160a01b03168260200151602001516001600160a01b0316146115745760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420636f6e74726163742061646472657373206d61746368207760448201526a697468206f72646572206160a81b606482015260840161032b565b816040015160400151836020015160400151146115e95760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c103bb4ba341037b93232b9103160991b606482015260840161032b565b8260400151604001518260200151604001511461165e5760405162461bcd60e51b815260206004820152602d60248201527f696e76616c696420616d6f756e74206f7220746f6b656e206964206d6174636860448201526c2077697468206f72646572206160981b606482015260840161032b565b6001805f82825461166f91906122f1565b90915550506001546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b5050505060015460025f8b81526020019081526020015f206006018190555060015460025f8a81526020019081526020015f20600601819055505f60405180606001604052808b81526020018a81526020018381525090508060035f60015481526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050507f24142722f1b2336f069f0fb228e80e81a454234dd7344d63db12e4e156a725f68a8a60015485336040516117da9594939291909485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405180910390a1505060015498975050505050505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa15801561185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187e9190612290565b6001600160a01b0316146118d45760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206c697374696e6720746f6b656e206f776e65720000604482015260640161032b565b5050565b5f60015f808282546118ea91906122f1565b925050819055505f6040518060a0016040528087600381111561190f5761190f6121f9565b815260208082018890526040808301889052606083018790525f60809093018390528254835260029091529020815181549293508392829060ff1916600183600381111561195f5761195f6121f9565b02179055506020820151805160018084018054909291839160ff191690838181111561198d5761198d6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560409182015160019182015590830151805160038401805492939092839160ff199091169083818111156119ee576119ee6121f9565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604090910151600190910155606082015160058201556080909101516006909101555f85516001811115611a4f57611a4f6121f9565b03611c5c575f856040015111611aa75760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f74206f66666572207a65726f20657263323020746f6b656e730000604482015260640161032b565b60208501516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611aef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b139190612316565b905085602001516001600160a01b03166323b872dd333089604001516040518463ffffffff1660e01b8152600401611b4d939291906122b2565b6020604051808303815f875af1158015611b69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8d91906122d6565b506040860151611b9d90826122f1565b60208701516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611be5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c099190612316565b14611c565760405162461bcd60e51b815260206004820152601960248201527f657263323020746f6b656e73206e6f7420726563656976656400000000000000604482015260640161032b565b50611f06565b600185516001811115611c7157611c716121f9565b03611ebe57602085015160408087015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce99190612290565b6001600160a01b031614611d3f5760405162461bcd60e51b815260206004820152601760248201527f73656e646572206e6f7420657263373231206f776e6572000000000000000000604482015260640161032b565b84602001516001600160a01b03166323b872dd337f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401611d97939291906122b2565b5f604051808303815f87803b158015611dae575f80fd5b505af1158015611dc0573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031685602001516001600160a01b0316636352211e87604001516040518263ffffffff1660e01b8152600401611e2491815260200190565b602060405180830381865afa158015611e3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e639190612290565b6001600160a01b031614611eb95760405162461bcd60e51b815260206004820152601960248201527f65726337323120746f6b656e206e6f7420726563656976656400000000000000604482015260640161032b565b611f06565b60405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206974656d207479706520696e206f66666572000000000000604482015260640161032b565b5f546040516340c10f1960e01b815233600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f19906044015f604051808303815f87803b158015611f6e575f80fd5b505af1158015611f80573d5f803e3d5ffd5b505050507f07f0d8a8500bb0556bb8f8eb2d27a5cedefe472dd0e4703b5711cdac02f1a9c986868686335f54604051611fbe9695949392919061232d565b60405180910390a150505f54949350505050565b60026020525f90815260409081902080548251606081019093526001808301805460ff93841695939192849290911690811115612011576120116121f9565b6001811115612022576120226121f9565b8152815461010090046001600160a01b0316602082015260019182015460409182015280516060810190915260038401805493949391929091839160ff90911690811115612072576120726121f9565b6001811115612083576120836121f9565b8152815461010090046001600160a01b03166020820152600190910154604090910152600582015460069092015490919085565b5f602082840312156120c7575f80fd5b5035919050565b80151581146120db575f80fd5b50565b5f805f80608085870312156120f1575f80fd5b8435935060208501359250604085013591506060850135612111816120ce565b939692955090935050565b6001600160a01b03811681146120db575f80fd5b5f60608284031215612140575f80fd5b6040516060810181811067ffffffffffffffff8211171561216f57634e487b7160e01b5f52604160045260245ffd5b604052905080823560028110612183575f80fd5b815260208301356121938161211c565b6020820152604092830135920191909152919050565b5f805f8061010085870312156121bd575f80fd5b8435600481106121cb575f80fd5b93506121da8660208701612130565b92506121e98660808701612130565b9396929550929360e00135925050565b634e487b7160e01b5f52602160045260245ffd5b6004811061221d5761221d6121f9565b9052565b805160028110612233576122336121f9565b82526020818101516001600160a01b031690830152604090810151910152565b6101208101612262828861220d565b61226f6020830187612221565b61227c6080830186612221565b60e082019390935261010001529392505050565b5f602082840312156122a0575f80fd5b81516122ab8161211c565b9392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156122e6575f80fd5b81516122ab816120ce565b8082018082111561231057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215612326575f80fd5b5051919050565b610140810161233c828961220d565b6123496020830188612221565b6123566080830187612221565b60e08201949094526001600160a01b039290921661010083015261012090910152939250505056fea264697066735822122035c8a9a3f3913bf7bc06ca896d10b6a21032fd5460c8786c5a77018ff3591b3f64736f6c63430008140033","sourceMap":"1281:15499:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14221:2386;;;;;;;;;;-1:-1:-1;14221:2386:46;;;;;:::i;:::-;;:::i;:::-;;2933:49;;;;;;;;;;-1:-1:-1;2933:49:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:25:76;;;457:2;442:18;;435:34;;;;485:18;;;478:34;389:2;374:18;2933:49:46;;;;;;;;10191:3630;;;;;;:::i;:::-;;:::i;:::-;;;1243:25:76;;;1231:2;1216:18;10191:3630:46;1097:177:76;2576:48:46;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1443:32:76;;;1425:51;;1413:2;1398:18;2576:48:46;1279:203:76;7356:1480:46;;;;;;;;;;-1:-1:-1;7356:1480:46;;;;;:::i;:::-;;:::i;5314:1731::-;;;;;;;;;;-1:-1:-1;5314:1731:46;;;;;:::i;:::-;;:::i;2456:52::-;;;;;;;;;;;;;;;2842:50;;;;;;;;;;-1:-1:-1;2842:50:46;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;2514:56::-;;;;;;;;;;;;;;;14221:2386;1594:68;;-1:-1:-1;;;1594:68:46;;;;;1243:25:76;;;14308:18:46;;1666:10;;-1:-1:-1;;;;;1602:31:46;1594:48;;;;1216:18:76;;1594:68:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1594:82:46;;1586:129;;;;-1:-1:-1;;;1586:129:46;;4708:2:76;1586:129:46;;;4690:21:76;4747:2;4727:18;;;4720:30;4786:34;4766:18;;;4759:62;-1:-1:-1;;;4837:18:76;;;4830:32;4879:19;;1586:129:46;;;;;;;;;14338:36:::1;14377:27:::0;;;:7:::1;:27;::::0;;;;;;;14338:66;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;14445:40;;;;;;;14414:71;;::::1;::::0;::::1;::::0;;;;;14338:66;;:36;14414:71;;14445:40;;14414:71;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14414:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14414:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;14535:30;;::::1;::::0;-1:-1:-1;14526:40:46;;;:8:::1;:40:::0;;;;;;14495:71;;::::1;::::0;::::1;::::0;;;;;14414;;-1:-1:-1;;;14495:71:46;;14526:40;14495:71;;::::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;14495:71:46::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14495:71:46::1;-1:-1:-1::0;;;;;14495:71:46::1;-1:-1:-1::0;;;;;14495:71:46::1;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;14576:20;14607:27;-1:-1:-1::0;;;;;14599:44:46::1;;14644:14;:30;;;14599:76;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14599:76:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14576:99;;14685:20;14716:27;-1:-1:-1::0;;;;;14708:44:46::1;;14753:14;:30;;;14708:76;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14708:76:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14685:99;;14802:7;:27;14810:18;14802:27;;;;;;;;;;;;14795:34:::0;::::1;;;;;;;;;;;;;;;;;;;14846:8;:40;14855:14;:30;;;14846:40;;;;;;;;;;;;14839:47:::0;::::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14839:47:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14839:47:46::1;;;;;;;;;;;;;;;;;;;;;;;;;;;14903:8;:40;14912:14;:30;;;14903:40;;;;;;;;;;;;14896:47:::0;::::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14896:47:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14896:47:46::1;;;;;;;;;;;;;;;;;;;;;;;;;;;14996:31;-1:-1:-1::0;;;;;14987:46:46::1;;15034:18;;14987:66;;;;;;;;;;;;;1243:25:76::0;;1231:2;1216:18;;1097:177;14987:66:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15137:30:46;;15094:74:::1;::::0;-1:-1:-1;;;15094:74:46;;::::1;::::0;::::1;1243:25:76::0;;;;15103:27:46::1;-1:-1:-1::0;;;;;15094:42:46::1;::::0;-1:-1:-1;15094:42:46::1;::::0;-1:-1:-1;1216:18:76;;15094:74:46::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;15221:30:46::1;::::0;::::1;::::0;15178:74:::1;::::0;-1:-1:-1;;;15178:74:46;;-1:-1:-1;;;;;15187:27:46::1;15178:42;::::0;-1:-1:-1;15178:42:46::1;::::0;:74:::1;::::0;::::1;;1243:25:76::0;;;1231:2;1216:18;;1097:177;15178:74:46::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15312:25:46::1;::::0;-1:-1:-1;15292:45:46::1;::::0;-1:-1:-1;;15292:45:46;::::1;:16:::0;;:45:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15288:1313:::1;;15360:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15436;;::::1;::::0;15353:116;;-1:-1:-1;;;15353:116:46;;-1:-1:-1;;;;;15353:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15415:4:::1;::::0;15422:12;;15436:32;15353:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15490:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15566;;::::1;::::0;15483:116;;-1:-1:-1;;;15483:116:46;;-1:-1:-1;;;;;15483:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15545:4:::1;::::0;15552:12;;15566:32;15483:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15288:1313;;;15640:26;15620:16:::0;;:46:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15616:985:::1;;15689:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15765;;::::1;::::0;15682:116;;-1:-1:-1;;;15682:116:46;;-1:-1:-1;;;;;15682:53:46;;::::1;::::0;::::1;::::0;:116:::1;::::0;15744:4:::1;::::0;15751:12;;15765:32;15682:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15820:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;15900;;::::1;::::0;15812:121;;-1:-1:-1;;;15812:121:46;;-1:-1:-1;;;;;15812:58:46;;::::1;::::0;::::1;::::0;:121:::1;::::0;15879:4:::1;::::0;15886:12;;15900:32;15812:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15616:985;;;15974:26;15954:16:::0;;:46:::1;::::0;::::1;;;;;;:::i;:::-;::::0;15950:651:::1;;16080:14;::::0;;::::1;::::0;:30;;::::1;::::0;16112::::1;::::0;;::::1;::::0;16016:127;;-1:-1:-1;;;16016:127:46;;-1:-1:-1;;;;;16030:23:46::1;16016:49;::::0;::::1;::::0;:127:::1;::::0;16066:12;;16112:30;16016:127:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;16164:14:46::1;::::0;;::::1;::::0;:30;;::::1;::::0;16219::::1;::::0;;::::1;::::0;16157:93;;-1:-1:-1;;;16157:93:46;;-1:-1:-1;;;;;5731:32:76;;;16157:93:46::1;::::0;::::1;5713:51:76::0;5780:18;;;5773:34;;;;16157:47:46;::::1;::::0;-1:-1:-1;16157:47:46::1;::::0;5686:18:76;;16157:93:46::1;5539:274:76::0;15950:651:46::1;16291:27;16271:16:::0;;:47:::1;::::0;::::1;;;;;;:::i;:::-;::::0;16267:334:::1;;16342:16;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;16422;;::::1;::::0;16334:121;;-1:-1:-1;;;16334:121:46;;-1:-1:-1;;;;;16334:58:46;;::::1;::::0;::::1;::::0;:121:::1;::::0;16401:4:::1;::::0;16408:12;;16422:32;16334:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;16477:16:46::1;::::0;;::::1;::::0;:32:::1;::::0;::::1;::::0;16557;;::::1;::::0;16469:121;;-1:-1:-1;;;16469:121:46;;-1:-1:-1;;;;;16469:58:46;;::::1;::::0;-1:-1:-1;16469:58:46::1;::::0;:121:::1;::::0;16536:4:::1;::::0;16543:12;;16469:121:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16267:334;14328:2279;;;;;14221:2386:::0;;:::o;10191:3630::-;10327:7;10931:25;;;:8;:25;;;;;;10900:56;;;;;;;;;;10411:27;;10327:7;;10900:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10900:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10900:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10997:25:46;;;:8;:25;;;;;;10966:56;;;;;;;;;;10900;;-1:-1:-1;;;10966:56:46;;10997:25;10966:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10966:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10966:56:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11058:26:46;11076:8;11058:15;:26;:::i;:::-;11032:52;;11103:6;:25;;;11132:1;11103:30;11095:66;;;;-1:-1:-1;;;11095:66:46;;6247:2:76;11095:66:46;;;6229:21:76;6286:2;6266:18;;;6259:30;6325:25;6305:18;;;6298:53;6368:18;;11095:66:46;6045:347:76;11095:66:46;11179:25;;;;:30;11171:66;;;;-1:-1:-1;;;11171:66:46;;6599:2:76;11171:66:46;;;6581:21:76;6638:2;6618:18;;;6611:30;6677:25;6657:18;;;6650:53;6720:18;;11171:66:46;6397:347:76;11171:66:46;11275:15;11255:6;:17;;;:35;11247:67;;;;-1:-1:-1;;;11247:67:46;;6951:2:76;11247:67:46;;;6933:21:76;6990:2;6970:18;;;6963:30;-1:-1:-1;;;7009:18:76;;;7002:49;7068:18;;11247:67:46;6749:343:76;11247:67:46;11352:15;11332:6;:17;;;:35;11324:67;;;;-1:-1:-1;;;11324:67:46;;7299:2:76;11324:67:46;;;7281:21:76;7338:2;7318:18;;;7311:30;-1:-1:-1;;;7357:18:76;;;7350:49;7416:18;;11324:67:46;7097:343:76;11324:67:46;11429:15;11409:6;:17;;;:35;11401:83;;;;-1:-1:-1;;;11401:83:46;;7647:2:76;11401:83:46;;;7629:21:76;7686:2;7666:18;;;7659:30;7725:34;7705:18;;;7698:62;-1:-1:-1;;;7776:18:76;;;7769:33;7819:19;;11401:83:46;7445:399:76;11401:83:46;11522:15;11502:6;:17;;;:35;11494:83;;;;-1:-1:-1;;;11494:83:46;;8051:2:76;11494:83:46;;;8033:21:76;8090:2;8070:18;;;8063:30;8129:34;8109:18;;;8102:62;-1:-1:-1;;;8180:18:76;;;8173:33;8223:19;;11494:83:46;7849:399:76;11494:83:46;11640:25;11620:16;;:45;;;;;;;;:::i;:::-;;11616:666;;11709:25;11689:16;;:45;;;;;;;;:::i;:::-;;11681:84;;;;-1:-1:-1;;;11681:84:46;;8455:2:76;11681:84:46;;;8437:21:76;8494:2;8474:18;;;8467:30;8533:28;8513:18;;;8506:56;8579:18;;11681:84:46;8253:350:76;11681:84:46;11616:666;;;11806:26;11786:16;;:46;;;;;;;;:::i;:::-;;11782:500;;11876:26;11856:16;;:46;;;;;;;;:::i;:::-;;11848:85;;;;-1:-1:-1;;;11848:85:46;;8810:2:76;11848:85:46;;;8792:21:76;8849:2;8829:18;;;8822:30;8888:28;8868:18;;;8861:56;8934:18;;11848:85:46;8608:350:76;11782:500:46;11974:26;11954:16;;:46;;;;;;;;:::i;:::-;;11950:332;;12044:26;12024:16;;:46;;;;;;;;:::i;:::-;;12016:85;;;;-1:-1:-1;;;12016:85:46;;9165:2:76;12016:85:46;;;9147:21:76;9204:2;9184:18;;;9177:30;9243:28;9223:18;;;9216:56;9289:18;;12016:85:46;8963:350:76;11950:332:46;12142:27;12122:16;;:47;;;;;;;;:::i;:::-;;12118:164;;12213:27;12193:16;;:47;;;;;;;;:::i;:::-;;12185:86;;;;-1:-1:-1;;;12185:86:46;;9520:2:76;12185:86:46;;;9502:21:76;9559:2;9539:18;;;9532:30;9598:28;9578:18;;;9571:56;9644:18;;12185:86:46;9318:350:76;12185:86:46;12333:6;:16;;;:32;;;-1:-1:-1;;;;;12299:66:46;:6;:14;;;:30;;;-1:-1:-1;;;;;12299:66:46;;12291:122;;;;-1:-1:-1;;;12291:122:46;;9875:2:76;12291:122:46;;;9857:21:76;9914:2;9894:18;;;9887:30;9953:34;9933:18;;;9926:62;-1:-1:-1;;;10004:18:76;;;9997:41;10055:19;;12291:122:46;9673:407:76;12291:122:46;12465:6;:16;;;:32;;;-1:-1:-1;;;;;12431:66:46;:6;:14;;;:30;;;-1:-1:-1;;;;;12431:66:46;;12423:122;;;;-1:-1:-1;;;12423:122:46;;10287:2:76;12423:122:46;;;10269:21:76;10326:2;10306:18;;;10299:30;10365:34;10345:18;;;10338:62;-1:-1:-1;;;10416:18:76;;;10409:41;10467:19;;12423:122:46;10085:407:76;12423:122:46;12597:6;:16;;;:32;;;12563:6;:14;;;:30;;;:66;12555:124;;;;-1:-1:-1;;;12555:124:46;;10699:2:76;12555:124:46;;;10681:21:76;10738:2;10718:18;;;10711:30;10777:34;10757:18;;;10750:62;-1:-1:-1;;;10828:18:76;;;10821:43;10881:19;;12555:124:46;10497:409:76;12555:124:46;12731:6;:16;;;:32;;;12697:6;:14;;;:30;;;:66;12689:124;;;;-1:-1:-1;;;12689:124:46;;11113:2:76;12689:124:46;;;11095:21:76;11152:2;11132:18;;;11125:30;11191:34;11171:18;;;11164:62;-1:-1:-1;;;11242:18:76;;;11235:43;11295:19;;12689:124:46;10911:409:76;12689:124:46;13142:1;13120:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;13212:18:46;;13153:78;;-1:-1:-1;;;13153:78:46;;13200:10;13153:78;;;5713:51:76;5780:18;;;5773:34;;;;13162:31:46;-1:-1:-1;;;;;13153:46:46;;;;5686:18:76;;13153:78:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13327:18;;13280:8;:25;13289:15;13280:25;;;;;;;;;;;:44;;:65;;;;13402:18;;13355:8;:25;13364:15;13355:25;;;;;;;;;;;:44;;:65;;;;13454:36;13493:111;;;;;;;;13521:15;13493:111;;;;13550:15;13493:111;;;;13579:15;13493:111;;;13454:150;;13644:14;13614:7;:27;13622:18;;13614:27;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;13674:104;13696:15;13713;13730:18;;13750:15;13767:10;13674:104;;;;;;;;;11584:25:76;;;11640:2;11625:18;;11618:34;;;;11683:2;11668:18;;11661:34;;;;11726:2;11711:18;;11704:34;-1:-1:-1;;;;;11775:32:76;11769:3;11754:19;;11747:61;11571:3;11556:19;;11325:489;13674:104:46;;;;;;;;-1:-1:-1;;13796:18:46;;;10191:3630;-1:-1:-1;;;;;;;;10191:3630:46:o;7356:1480::-;1385:60;;-1:-1:-1;;;1385:60:46;;;;;1243:25:76;;;7434:14:46;;1449:10;;-1:-1:-1;;;;;1393:27:46;1385:44;;;;1216:18:76;;1385:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1385:74:46;;1377:117;;;;-1:-1:-1;;;1377:117:46;;12021:2:76;1377:117:46;;;12003:21:76;12060:2;12040:18;;;12033:30;12099:32;12079:18;;;12072:60;12149:18;;1377:117:46;11819:354:76;1377:117:46;7356:1480;;:::o;5314:1731::-;5451:7;5488:1;5470:14;;:19;;;;;;;:::i;:::-;;;;;;;;5531:29;5563:135;;;;;;;;5591:9;5563:135;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5563:135:46;;;;;;;5717:14;;5708:24;;:8;:24;;;;;:34;;;;5531:167;;-1:-1:-1;5531:167:46;;5708:24;;-1:-1:-1;;5708:34:46;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;;;;;;;;;;;;-1:-1:-1;;5708:34:46;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;-1:-1:-1;;;;;5708:34:46;;;;;-1:-1:-1;;;;;;5708:34:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5708:34:46;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;5708:34:46;;;;;;-1:-1:-1;;;;;5708:34:46;;;;;-1:-1:-1;;;;;;5708:34:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:14;;:32;;;;;;;;:::i;:::-;;5785:983;;5869:1;5845:5;:21;;;:25;5837:68;;;;-1:-1:-1;;;5837:68:46;;12380:2:76;5837:68:46;;;12362:21:76;12419:2;12399:18;;;12392:30;12458:32;12438:18;;;12431:60;12508:18;;5837:68:46;12178:354:76;5837:68:46;5947:21;;;;5940:54;;-1:-1:-1;;;5940:54:46;;5988:4;5940:54;;;1425:51:76;5919:18:46;;-1:-1:-1;;;;;5940:39:46;;;;1398:18:76;;5940:54:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5919:75;;6015:5;:21;;;-1:-1:-1;;;;;6008:42:46;;6051:10;6071:4;6078:5;:21;;;6008:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6193:21:46;;;;6180:34;;:10;:34;:::i;:::-;6129:21;;;;6122:54;;-1:-1:-1;;;6122:54:46;;6170:4;6122:54;;;1425:51:76;-1:-1:-1;;;;;6122:39:46;;;;;;1398:18:76;;6122:54:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;6114:130;;;;-1:-1:-1;;;6114:130:46;;12928:2:76;6114:130:46;;;12910:21:76;12967:2;12947:18;;;12940:30;13006:27;12986:18;;;12979:55;13051:18;;6114:130:46;12726:349:76;6114:130:46;5823:432;5785:983;;;6283:15;6265:14;;:33;;;;;;;;:::i;:::-;;6261:507;;6330:21;;;;6361;;;;;6322:61;;-1:-1:-1;;;6322:61:46;;;;;1243:25:76;;;;6387:10:46;;-1:-1:-1;;;;;6322:38:46;;;;1216:18:76;;6322:61:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6322:75:46;;6314:111;;;;-1:-1:-1;;;6314:111:46;;13282:2:76;6314:111:46;;;13264:21:76;13321:2;13301:18;;;13294:30;13360:25;13340:18;;;13333:53;13403:18;;6314:111:46;13080:347:76;6314:111:46;6447:5;:21;;;-1:-1:-1;;;;;6439:43:46;;6483:10;6495:23;6520:5;:21;;;6439:103;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6629:23;-1:-1:-1;;;;;6564:88:46;6572:5;:21;;;-1:-1:-1;;;;;6564:38:46;;6603:5;:21;;;6564:61;;;;;;;;;;;;;1243:25:76;;1231:2;1216:18;;1097:177;6564:61:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6564:88:46;;6556:126;;;;-1:-1:-1;;;6556:126:46;;13634:2:76;6556:126:46;;;13616:21:76;13673:2;13653:18;;;13646:30;13712:27;13692:18;;;13685:55;13757:18;;6556:126:46;13432:349:76;6556:126:46;6261:507;;;6713:44;;-1:-1:-1;;;6713:44:46;;13988:2:76;6713:44:46;;;13970:21:76;14027:2;14007:18;;;14000:30;14066:28;14046:18;;;14039:56;14112:18;;6713:44:46;13786:350:76;6713:44:46;6887:14;;6832:70;;-1:-1:-1;;;6832:70:46;;6875:10;6832:70;;;5713:51:76;5780:18;;;5773:34;;;;6841:27:46;-1:-1:-1;;;;;6832:42:46;;;;5686:18:76;;6832:70:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6918:88;6940:9;6951:5;6958:7;6967:10;6979;6991:14;;6918:88;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;7024:14:46;;5314:1731;;;;;;:::o;2842:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2842:50:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2842:50:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:76:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:76;;14:180;-1:-1:-1;14:180:76:o;523:118::-;609:5;602:13;595:21;588:5;585:32;575:60;;631:1;628;621:12;575:60;523:118;:::o;646:446::-;729:6;737;745;753;806:3;794:9;785:7;781:23;777:33;774:53;;;823:1;820;813:12;774:53;859:9;846:23;836:33;;916:2;905:9;901:18;888:32;878:42;;967:2;956:9;952:18;939:32;929:42;;1021:2;1010:9;1006:18;993:32;1034:28;1056:5;1034:28;:::i;:::-;646:446;;;;-1:-1:-1;646:446:76;;-1:-1:-1;;646:446:76:o;1487:131::-;-1:-1:-1;;;;;1562:31:76;;1552:42;;1542:70;;1608:1;1605;1598:12;1623:792;1679:5;1727:4;1715:9;1710:3;1706:19;1702:30;1699:50;;;1745:1;1742;1735:12;1699:50;1778:2;1772:9;1820:4;1812:6;1808:17;1891:6;1879:10;1876:22;1855:18;1843:10;1840:34;1837:62;1834:185;;;1941:10;1936:3;1932:20;1929:1;1922:31;1976:4;1973:1;1966:15;2004:4;2001:1;1994:15;1834:185;2035:2;2028:22;2068:6;-1:-1:-1;2068:6:76;2098:23;;2152:1;2140:14;;2130:42;;2168:1;2165;2158:12;2130:42;2181:23;;2256:2;2241:18;;2228:32;2269:33;2228:32;2269:33;:::i;:::-;2330:2;2318:15;;2311:32;2404:2;2389:18;;;2376:32;2359:15;;2352:57;;;;1623:792;;-1:-1:-1;1623:792:76:o;2420:582::-;2577:6;2585;2593;2601;2654:3;2642:9;2633:7;2629:23;2625:33;2622:53;;;2671:1;2668;2661:12;2622:53;2710:9;2697:23;2749:1;2742:5;2739:12;2729:40;;2765:1;2762;2755:12;2729:40;2788:5;-1:-1:-1;2812:56:76;2860:7;2855:2;2840:18;;2812:56;:::i;:::-;2802:66;;2887:57;2936:7;2930:3;2919:9;2915:19;2887:57;:::i;:::-;2420:582;;;;-1:-1:-1;2877:67:76;;2991:3;2976:19;2963:33;;-1:-1:-1;;2420:582:76:o;3007:127::-;3068:10;3063:3;3059:20;3056:1;3049:31;3099:4;3096:1;3089:15;3123:4;3120:1;3113:15;3139:140;3220:1;3213:5;3210:12;3200:46;;3226:18;;:::i;:::-;3255;;3139:140::o;3284:305::-;3363:5;3357:12;3395:1;3391:2;3388:9;3378:43;;3401:18;;:::i;:::-;3430:15;;3498:4;3487:16;;;3481:23;-1:-1:-1;;;;;3477:49:76;3461:14;;;3454:73;3576:4;3565:16;;;3559:23;3543:14;;3536:47;3284:305::o;3594:651::-;3965:3;3950:19;;3978:44;3954:9;4004:6;3978:44;:::i;:::-;4031:55;4082:2;4071:9;4067:18;4059:6;4031:55;:::i;:::-;4095:56;4146:3;4135:9;4131:19;4123:6;4095:56;:::i;:::-;4182:3;4167:19;;4160:35;;;;4226:3;4211:19;4204:35;3594:651;;-1:-1:-1;;;3594:651:76:o;4250:251::-;4320:6;4373:2;4361:9;4352:7;4348:23;4344:32;4341:52;;;4389:1;4386;4379:12;4341:52;4421:9;4415:16;4440:31;4465:5;4440:31;:::i;:::-;4490:5;4250:251;-1:-1:-1;;;4250:251:76:o;4909:375::-;-1:-1:-1;;;;;5167:15:76;;;5149:34;;5219:15;;;;5214:2;5199:18;;5192:43;5266:2;5251:18;;5244:34;;;;5099:2;5084:18;;4909:375::o;5289:245::-;5356:6;5409:2;5397:9;5388:7;5384:23;5380:32;5377:52;;;5425:1;5422;5415:12;5377:52;5457:9;5451:16;5476:28;5498:5;5476:28;:::i;5818:222::-;5883:9;;;5904:10;;;5901:133;;;5956:10;5951:3;5947:20;5944:1;5937:31;5991:4;5988:1;5981:15;6019:4;6016:1;6009:15;5901:133;5818:222;;;;:::o;12537:184::-;12607:6;12660:2;12648:9;12639:7;12635:23;12631:32;12628:52;;;12676:1;12673;12666:12;12628:52;-1:-1:-1;12699:16:76;;12537:184;-1:-1:-1;12537:184:76:o;14141:749::-;14540:3;14525:19;;14553:44;14529:9;14579:6;14553:44;:::i;:::-;14606:55;14657:2;14646:9;14642:18;14634:6;14606:55;:::i;:::-;14670:56;14721:3;14710:9;14706:19;14698:6;14670:56;:::i;:::-;14757:3;14742:19;;14735:35;;;;-1:-1:-1;;;;;14807:32:76;;;;14801:3;14786:19;;14779:61;14871:3;14856:19;;;14849:35;14141:749;;-1:-1:-1;;;14141:749:76:o","linkReferences":{},"immutableReferences":{"49317":[{"start":446,"length":32},{"start":1496,"length":32},{"start":1643,"length":32},{"start":2315,"length":32},{"start":2439,"length":32},{"start":3604,"length":32},{"start":6165,"length":32},{"start":7973,"length":32}],"49319":[{"start":545,"length":32},{"start":613,"length":32},{"start":2169,"length":32},{"start":5780,"length":32}],"49321":[{"start":309,"length":32},{"start":3160,"length":32},{"start":7509,"length":32},{"start":7622,"length":32}]}},"methodIdentifiers":{"cancelTokenizedOrder(uint256)":"daa5dc2a","createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":"dca76495","fulfillTokenizedOrder(uint256)":"031e6c34","fulfillmentTokenContractAddress()":"fab79202","listingTokenContractAddress()":"dce74418","listings(uint256)":"de74e57b","matchTokenizedOrder(uint256,uint256,uint256,bool)":"65b8f692","matches(uint256)":"4768d4ef","treasuryContractAddress()":"be1343e6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721FactoryAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasuryContractAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"listingTokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fulfillmentTokenContract\",\"type\":\"address\"}],\"name\":\"TokenizedMarketCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"request\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenId\",\"type\":\"uint256\"}],\"name\":\"TokenizedOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fulfiller\",\"type\":\"address\"}],\"name\":\"TokenizedOrderFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"matcher\",\"type\":\"address\"}],\"name\":\"TokenizedOrderMatched\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenId\",\"type\":\"uint256\"}],\"name\":\"cancelTokenizedOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"request\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"createTokenizedOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"}],\"name\":\"fulfillTokenizedOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fulfillmentTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listingTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"listings\",\"outputs\":[{\"internalType\":\"enum OGRETokenizedMarket.OrderType\",\"name\":\"orderType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"offered\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum OGRETokenizedMarket.ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedMarket.OrderItem\",\"name\":\"requested\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fulfillmentTokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"autofill\",\"type\":\"bool\"}],\"name\":\"matchTokenizedOrder\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"matches\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"listingTokenIdA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTokenIdB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)\":{\"params\":{\"expiration\":\"time when order will expire and become invalid\",\"offer\":\"order item offered by order creator\",\"orderType\":\"type of order defining order route (e.g. ERC20_FOR_ERC721, ERC721_FOR_ERC721)\",\"request\":\"order item requested by order creator\"},\"returns\":{\"_0\":\"uint256 token id for newly minted listing token\"}},\"fulfillTokenizedOrder(uint256)\":{\"params\":{\"fulfillmentTokenId\":\"token id of match to fulfill\"}},\"matchTokenizedOrder(uint256,uint256,uint256,bool)\":{\"params\":{\"autofill\":\"if true then the FULFILL token will automatically be redeemed\",\"duration\":\"length of time in seconds until the match expires\",\"listingTokenIdA\":\"token id of listing a\",\"listingTokenIdB\":\"token id of listing b\"},\"returns\":{\"_0\":\"uint256 id of new fulfillment token representing a secured match\"}}},\"title\":\"Tokenized Market Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelTokenizedOrder(uint256)\":{\"notice\":\"Cancels an outstanding tokenized order. The offered item represented by the given LISTING token id will be transferred to the LISTING token holder, and the LISTING token will be burned. Only callable by the LISTING token owner, and LISTING token must not be matched.\"},\"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)\":{\"notice\":\"Places a new tokenized order on the market. The offered item will be transferred to the treasury contract for storage, and a LISTING token will be minted to represent ownership of the offered item. The LISTING token can be redeemed at any time to remove the associated listing from the public order book and claim the underlying offered order item.\"},\"fulfillTokenizedOrder(uint256)\":{\"notice\":\"Fulfills the match represented by `fulfillmentTokenId`. If the fulfillment is valid, both LISTING tokens and the FULFILL token will be burned, and the order match will be executed. LISTING token holders will receive the appropriate requested order items defined in the underlying order.\"},\"matchTokenizedOrder(uint256,uint256,uint256,bool)\":{\"notice\":\"Attempts to establish a match between orders for `listingTokenIdA` and `listingTokenIdB` in the public order book. To qualify as a valid match all the following criteria must be met: - Caller must pay a premium based on match duration if autofill is false. - Offer for listing A must match Request from listing B, and vice versa. - Both orders must not be expired. - Both orders must not already be matched. If the match is found to be valid, a FULFILL token will me minted to the matcher address. A FULFILL token grants the owner the sole right, but not the obligation, to fulfill the underlying match at any time before the match expiration. Additionally, while the match is valid both LISTING tokens cannot be redeemed for their underlying tokens. If the match expires the match creator forfeits the premium paid, and anyone that cancels the expired match will receive a cut of the premium.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETokenizedMarket.sol\":\"OGRETokenizedMarket\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"src/OGRETokenizedMarket.sol\":{\"keccak256\":\"0xd21d81ef0d3cda13365e3e0ba219697cdaf59af03e6f7886c7a642c12dcc9ad0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dbd886851bf131806ca25900c7d87f7ac3633d408a5603c00bf77781078c4e50\",\"dweb:/ipfs/QmUbD4Fgkrymmo1MoaCmEw7VhG6VcuFnD5Hayc36YqMuDb\"]},\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]},\"src/interfaces/IOGRETreasury.sol\":{\"keccak256\":\"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4\",\"dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"erc721FactoryAddress_","type":"address"},{"internalType":"address","name":"treasuryContractAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"erc721Factory","type":"address","indexed":false},{"internalType":"address","name":"listingTokenContract","type":"address","indexed":false},{"internalType":"address","name":"fulfillmentTokenContract","type":"address","indexed":false}],"type":"event","name":"TokenizedMarketCreated","anonymous":false},{"inputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8","indexed":false},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offer","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"indexed":false},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"request","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}],"indexed":false},{"internalType":"uint256","name":"expiration","type":"uint256","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":false},{"internalType":"uint256","name":"listingTokenId","type":"uint256","indexed":false}],"type":"event","name":"TokenizedOrderCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"fulfiller","type":"address","indexed":false}],"type":"event","name":"TokenizedOrderFulfilled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256","indexed":false},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256","indexed":false},{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"expiration","type":"uint256","indexed":false},{"internalType":"address","name":"matcher","type":"address","indexed":false}],"type":"event","name":"TokenizedOrderMatched","anonymous":false},{"inputs":[{"internalType":"uint256","name":"listingTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelTokenizedOrder"},{"inputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8"},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offer","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"request","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"uint256","name":"expiration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createTokenizedOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fulfillTokenizedOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"fulfillmentTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listingTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"listings","outputs":[{"internalType":"enum OGRETokenizedMarket.OrderType","name":"orderType","type":"uint8"},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"offered","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"struct OGRETokenizedMarket.OrderItem","name":"requested","type":"tuple","components":[{"internalType":"enum OGRETokenizedMarket.ItemType","name":"itemType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"uint256","name":"fulfillmentTokenId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256"},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"bool","name":"autofill","type":"bool"}],"stateMutability":"payable","type":"function","name":"matchTokenizedOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"matches","outputs":[{"internalType":"uint256","name":"listingTokenIdA","type":"uint256"},{"internalType":"uint256","name":"listingTokenIdB","type":"uint256"},{"internalType":"uint256","name":"expiration","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"treasuryContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":{"params":{"expiration":"time when order will expire and become invalid","offer":"order item offered by order creator","orderType":"type of order defining order route (e.g. ERC20_FOR_ERC721, ERC721_FOR_ERC721)","request":"order item requested by order creator"},"returns":{"_0":"uint256 token id for newly minted listing token"}},"fulfillTokenizedOrder(uint256)":{"params":{"fulfillmentTokenId":"token id of match to fulfill"}},"matchTokenizedOrder(uint256,uint256,uint256,bool)":{"params":{"autofill":"if true then the FULFILL token will automatically be redeemed","duration":"length of time in seconds until the match expires","listingTokenIdA":"token id of listing a","listingTokenIdB":"token id of listing b"},"returns":{"_0":"uint256 id of new fulfillment token representing a secured match"}}},"version":1},"userdoc":{"kind":"user","methods":{"cancelTokenizedOrder(uint256)":{"notice":"Cancels an outstanding tokenized order. The offered item represented by the given LISTING token id will be transferred to the LISTING token holder, and the LISTING token will be burned. Only callable by the LISTING token owner, and LISTING token must not be matched."},"createTokenizedOrder(uint8,(uint8,address,uint256),(uint8,address,uint256),uint256)":{"notice":"Places a new tokenized order on the market. The offered item will be transferred to the treasury contract for storage, and a LISTING token will be minted to represent ownership of the offered item. The LISTING token can be redeemed at any time to remove the associated listing from the public order book and claim the underlying offered order item."},"fulfillTokenizedOrder(uint256)":{"notice":"Fulfills the match represented by `fulfillmentTokenId`. If the fulfillment is valid, both LISTING tokens and the FULFILL token will be burned, and the order match will be executed. LISTING token holders will receive the appropriate requested order items defined in the underlying order."},"matchTokenizedOrder(uint256,uint256,uint256,bool)":{"notice":"Attempts to establish a match between orders for `listingTokenIdA` and `listingTokenIdB` in the public order book. To qualify as a valid match all the following criteria must be met: - Caller must pay a premium based on match duration if autofill is false. - Offer for listing A must match Request from listing B, and vice versa. - Both orders must not be expired. - Both orders must not already be matched. If the match is found to be valid, a FULFILL token will me minted to the matcher address. A FULFILL token grants the owner the sole right, but not the obligation, to fulfill the underlying match at any time before the match expiration. Additionally, while the match is valid both LISTING tokens cannot be redeemed for their underlying tokens. If the match expires the match creator forfeits the premium paid, and anyone that cancels the expired match will receive a cut of the premium."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETokenizedMarket.sol":"OGRETokenizedMarket"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"src/OGRETokenizedMarket.sol":{"keccak256":"0xd21d81ef0d3cda13365e3e0ba219697cdaf59af03e6f7886c7a642c12dcc9ad0","urls":["bzz-raw://dbd886851bf131806ca25900c7d87f7ac3633d408a5603c00bf77781078c4e50","dweb:/ipfs/QmUbD4Fgkrymmo1MoaCmEw7VhG6VcuFnD5Hayc36YqMuDb"],"license":"UNLICENSED"},"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"},"src/interfaces/IOGRETreasury.sol":{"keccak256":"0xb744221540b3cc083d1b48ab7716b179bc37f0e7462ac77b99de4e18395b6104","urls":["bzz-raw://a92f2ec56ebabb844d3a72a1ee8c95864142bac5242dac04827dcd633624f6f4","dweb:/ipfs/QmTHsm7fCSTCVLZ2wqwQRYuSth9G42YJiXnRdUPhQnTY3C"],"license":"UNLICENSED"}},"version":1},"id":46} \ No newline at end of file diff --git a/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json b/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json deleted file mode 100644 index 7dfd588..0000000 --- a/out/OGRETokenizedTreasury.sol/OGRETokenizedTreasury.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"erc721FactoryAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ALLOWED_CONTRACT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createDeposit","inputs":[{"name":"deposit","type":"tuple","internalType":"struct OGRETokenizedTreasury.TokenizedDeposit","components":[{"name":"contractType","type":"uint8","internalType":"enum OGRETokenizedTreasury.ContractType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depositTokenContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"contractType","type":"uint8","internalType":"enum OGRETokenizedTreasury.ContractType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"amountOrTokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"redeemDeposit","inputs":[{"name":"depositTokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateAllowlist","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a060405234801562000010575f80fd5b506040516200154538038062001545833981016040819052620000339162000270565b6040516377b24c1360e11b8152606060048201526024606482018190527f4f475245546f6b656e697a65645472656173757279204465706f73697420546f6084830152636b656e7360e01b60a483015260c090820152600760c48201526611115413d4d25560ca1b60e482015230604482015281906001600160a01b0382169063ef64982690610104016020604051808303815f875af1158015620000da573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000100919062000270565b6001600160a01b0316608052620001265f8051602062001505833981519152336200017a565b50620001495f80516020620015258339815191526080516200017a60201b60201c565b50620001725f80516020620015258339815191525f805160206200150583398151915262000226565b50506200029f565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166200021d575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001d43390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000220565b505f5b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f6020828403121562000281575f80fd5b81516001600160a01b038116811462000298575f80fd5b9392505050565b608051611231620002d45f395f81816102480152818161090b015281816109b801528181610a8e0152610b0801526112315ff3fe6080604052600436106100eb575f3560e01c806336568abe11610089578063b02c43d011610058578063b02c43d0146102b4578063d547741f14610309578063e84532a114610328578063e8ee60021461035b576100f2565b806336568abe146102185780636072e5771461023757806391d1485414610282578063a217fddf146102a1576100f2565b80631e984822116100c55780631e9848221461018c578063248a9ca3146101ac5780632f2ff15d146101da57806331a64434146101f9576100f2565b806301ffc9a7146100ff578063150b7a02146101335780631dc7e3a41461016b576100f2565b366100f257005b3480156100fd575f80fd5b005b34801561010a575f80fd5b5061011e610119366004610f2b565b61037a565b60405190151581526020015b60405180910390f35b34801561013e575f80fd5b5061015261014d366004610f6d565b6103b0565b6040516001600160e01b0319909116815260200161012a565b61017e610179366004611004565b610422565b60405190815260200161012a565b348015610197575f80fd5b5061017e5f805160206111dc83398151915281565b3480156101b7575f80fd5b5061017e6101c636600461107c565b5f9081526020819052604090206001015490565b3480156101e5575f80fd5b506100fd6101f4366004611093565b61096c565b348015610204575f80fd5b506100fd61021336600461107c565b610996565b348015610223575f80fd5b506100fd610232366004611093565b610d0c565b348015610242575f80fd5b5061026a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012a565b34801561028d575f80fd5b5061011e61029c366004611093565b610d3f565b3480156102ac575f80fd5b5061017e5f81565b3480156102bf575f80fd5b506102fa6102ce36600461107c565b60026020525f90815260409020805460019091015460ff82169161010090046001600160a01b03169083565b60405161012a939291906110d5565b348015610314575f80fd5b506100fd610323366004611093565b610d67565b348015610333575f80fd5b5061017e7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d81565b348015610366575f80fd5b506100fd61037536600461111f565b610d8b565b5f6001600160e01b03198216637965db0b60e01b14806103aa57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6103c85f805160206111dc83398151915233610d3f565b6104105760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b5f816020015161043f5f805160206111dc83398151915282610d3f565b6104825760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610407565b6001805f828254610493919061114b565b909155505f9050835160018111156104ad576104ad6110c1565b0361066c5760208301516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e919061116a565b905083602001516001600160a01b03166323b872dd303387604001516040518463ffffffff1660e01b815260040161055893929190611181565b6020604051808303815f875af1158015610574573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059891906111a5565b5060208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610605919061116a565b9050846040015182610617919061114b565b81146106655760405162461bcd60e51b815260206004820152601a60248201527f6572633230206465706f736974206e6f742072656365697665640000000000006044820152606401610407565b5050610889565b600183516001811115610681576106816110c1565b0361088957602083015160408085015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa1580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f991906111c0565b6001600160a01b03161461074f5760405162461bcd60e51b815260206004820152601f60248201527f73656e646572206e6f7420657263373231206465706f736974206f776e6572006044820152606401610407565b82602001516001600160a01b03166342842e0e303386604001516040518463ffffffff1660e01b815260040161078793929190611181565b5f604051808303815f87803b15801561079e575f80fd5b505af11580156107b0573d5f803e3d5ffd5b50505050306001600160a01b031683602001516001600160a01b0316636352211e85604001516040518263ffffffff1660e01b81526004016107f491815260200190565b602060405180830381865afa15801561080f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083391906111c0565b6001600160a01b0316146108895760405162461bcd60e51b815260206004820152601b60248201527f657263373231206465706f736974206e6f7420726563656976656400000000006044820152606401610407565b600180545f908152600260205260409020845181548693839160ff19169083818111156108b8576108b86110c1565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600192830155905491516340c10f1960e01b815233600482015260248101929092527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015f604051808303815f87803b15801561094c575f80fd5b505af115801561095e573d5f803e3d5ffd5b505060015495945050505050565b5f8281526020819052604090206001015461098681610de9565b6109908383610df6565b50505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2191906111c0565b6001600160a01b031614610a775760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206465706f73697420746f6b656e206f776e657200006044820152606401610407565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610ac790339030908790600401611181565b5f604051808303815f87803b158015610ade575f80fd5b505af1158015610af0573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610b53575f80fd5b505af1158015610b65573d5f803e3d5ffd5b5050505f8381526002602052604080822081516060810190925280549293509091829060ff166001811115610b9c57610b9c6110c1565b6001811115610bad57610bad6110c1565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301525f878152600290915290812080546001600160a81b031916815590910181905590915081516001811115610c0a57610c0a6110c1565b03610c875780602001516001600160a01b03166323b872dd303384604001516040518463ffffffff1660e01b8152600401610c4793929190611181565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906111a5565b600181516001811115610c9c57610c9c6110c1565b03610d075780602001516001600160a01b03166342842e0e303384604001516040518463ffffffff1660e01b8152600401610cd993929190611181565b5f604051808303815f87803b158015610cf0575f80fd5b505af1158015610d02573d5f803e3d5ffd5b505050505b505050565b6001600160a01b0381163314610d355760405163334bd91960e11b815260040160405180910390fd5b610d078282610e85565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f82815260208190526040902060010154610d8181610de9565b6109908383610e85565b7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d610db581610de9565b8115610dd257610d075f805160206111dc8339815191528461096c565b610d075f805160206111dc83398151915284610d67565b610df38133610eee565b50565b5f610e018383610d3f565b610e7e575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610e363390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103aa565b505f6103aa565b5f610e908383610d3f565b15610e7e575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103aa565b610ef88282610d3f565b610f275760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610407565b5050565b5f60208284031215610f3b575f80fd5b81356001600160e01b031981168114610f52575f80fd5b9392505050565b6001600160a01b0381168114610df3575f80fd5b5f805f805f60808688031215610f81575f80fd5b8535610f8c81610f59565b94506020860135610f9c81610f59565b935060408601359250606086013567ffffffffffffffff80821115610fbf575f80fd5b818801915088601f830112610fd2575f80fd5b813581811115610fe0575f80fd5b896020828501011115610ff1575f80fd5b9699959850939650602001949392505050565b5f60608284031215611014575f80fd5b6040516060810181811067ffffffffffffffff8211171561104357634e487b7160e01b5f52604160045260245ffd5b604052823560028110611054575f80fd5b8152602083013561106481610f59565b60208201526040928301359281019290925250919050565b5f6020828403121561108c575f80fd5b5035919050565b5f80604083850312156110a4575f80fd5b8235915060208301356110b681610f59565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b60608101600285106110f557634e487b7160e01b5f52602160045260245ffd5b9381526001600160a01b0392909216602083015260409091015290565b8015158114610df3575f80fd5b5f8060408385031215611130575f80fd5b823561113b81610f59565b915060208301356110b681611112565b808201808211156103aa57634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561117a575f80fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156111b5575f80fd5b8151610f5281611112565b5f602082840312156111d0575f80fd5b8151610f5281610f5956fe1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1a26469706673582212208c4a6dea21eebf339e77740ed73353a541135c4faf6007b2ca8aa25427762b5264736f6c63430008140033cbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1","sourceMap":"570:5491:47:-:0;;;1588:479;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1799:88;;-1:-1:-1;;;1799:88:47;;640:2:76;1799:88:47;;;622:21:76;679:2;659:18;;;652:30;;;719:34;698:19;;;691:63;-1:-1:-1;;;770:19:76;;;763:35;836:3;814:20;;;807:33;877:1;856:19;;;849:30;-1:-1:-1;;;895:19:76;;;888:38;1881:4:47;978:18:76;;;971:60;1683:21:47;;-1:-1:-1;;;;;1799:22:47;;;;;943:19:76;;1799:88:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1769:118:47;;;1898:38;-1:-1:-1;;;;;;;;;;;1925:10:47;1898;:38::i;:::-;;1946:57;-1:-1:-1;;;;;;;;;;;1975:27:47;;1946:10;;;:57;;:::i;:::-;-1:-1:-1;2013:47:47;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;2013:13:47;:47::i;:::-;1631:436;1588:479;570:5491;;6179:316:0;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6272:217;6179:316;;;;:::o;5698:247::-;5781:25;3901:12;;;;;;;;;;;:22;;;;5837:34;;;;5886:52;;3901:22;;5837:34;;3901:22;;:12;;5886:52;;5781:25;5886:52;5771:174;5698:247;;:::o;14:290:76:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:76;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:76:o;309:728::-;570:5491:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100eb575f3560e01c806336568abe11610089578063b02c43d011610058578063b02c43d0146102b4578063d547741f14610309578063e84532a114610328578063e8ee60021461035b576100f2565b806336568abe146102185780636072e5771461023757806391d1485414610282578063a217fddf146102a1576100f2565b80631e984822116100c55780631e9848221461018c578063248a9ca3146101ac5780632f2ff15d146101da57806331a64434146101f9576100f2565b806301ffc9a7146100ff578063150b7a02146101335780631dc7e3a41461016b576100f2565b366100f257005b3480156100fd575f80fd5b005b34801561010a575f80fd5b5061011e610119366004610f2b565b61037a565b60405190151581526020015b60405180910390f35b34801561013e575f80fd5b5061015261014d366004610f6d565b6103b0565b6040516001600160e01b0319909116815260200161012a565b61017e610179366004611004565b610422565b60405190815260200161012a565b348015610197575f80fd5b5061017e5f805160206111dc83398151915281565b3480156101b7575f80fd5b5061017e6101c636600461107c565b5f9081526020819052604090206001015490565b3480156101e5575f80fd5b506100fd6101f4366004611093565b61096c565b348015610204575f80fd5b506100fd61021336600461107c565b610996565b348015610223575f80fd5b506100fd610232366004611093565b610d0c565b348015610242575f80fd5b5061026a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012a565b34801561028d575f80fd5b5061011e61029c366004611093565b610d3f565b3480156102ac575f80fd5b5061017e5f81565b3480156102bf575f80fd5b506102fa6102ce36600461107c565b60026020525f90815260409020805460019091015460ff82169161010090046001600160a01b03169083565b60405161012a939291906110d5565b348015610314575f80fd5b506100fd610323366004611093565b610d67565b348015610333575f80fd5b5061017e7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d81565b348015610366575f80fd5b506100fd61037536600461111f565b610d8b565b5f6001600160e01b03198216637965db0b60e01b14806103aa57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6103c85f805160206111dc83398151915233610d3f565b6104105760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b5f816020015161043f5f805160206111dc83398151915282610d3f565b6104825760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610407565b6001805f828254610493919061114b565b909155505f9050835160018111156104ad576104ad6110c1565b0361066c5760208301516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e919061116a565b905083602001516001600160a01b03166323b872dd303387604001516040518463ffffffff1660e01b815260040161055893929190611181565b6020604051808303815f875af1158015610574573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059891906111a5565b5060208401516040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610605919061116a565b9050846040015182610617919061114b565b81146106655760405162461bcd60e51b815260206004820152601a60248201527f6572633230206465706f736974206e6f742072656365697665640000000000006044820152606401610407565b5050610889565b600183516001811115610681576106816110c1565b0361088957602083015160408085015190516331a9108f60e11b8152600481019190915233916001600160a01b031690636352211e90602401602060405180830381865afa1580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f991906111c0565b6001600160a01b03161461074f5760405162461bcd60e51b815260206004820152601f60248201527f73656e646572206e6f7420657263373231206465706f736974206f776e6572006044820152606401610407565b82602001516001600160a01b03166342842e0e303386604001516040518463ffffffff1660e01b815260040161078793929190611181565b5f604051808303815f87803b15801561079e575f80fd5b505af11580156107b0573d5f803e3d5ffd5b50505050306001600160a01b031683602001516001600160a01b0316636352211e85604001516040518263ffffffff1660e01b81526004016107f491815260200190565b602060405180830381865afa15801561080f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083391906111c0565b6001600160a01b0316146108895760405162461bcd60e51b815260206004820152601b60248201527f657263373231206465706f736974206e6f7420726563656976656400000000006044820152606401610407565b600180545f908152600260205260409020845181548693839160ff19169083818111156108b8576108b86110c1565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600192830155905491516340c10f1960e01b815233600482015260248101929092527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015f604051808303815f87803b15801561094c575f80fd5b505af115801561095e573d5f803e3d5ffd5b505060015495945050505050565b5f8281526020819052604090206001015461098681610de9565b6109908383610df6565b50505050565b6040516331a9108f60e11b815260048101829052819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2191906111c0565b6001600160a01b031614610a775760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206e6f74206465706f73697420746f6b656e206f776e657200006044820152606401610407565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610ac790339030908790600401611181565b5f604051808303815f87803b158015610ade575f80fd5b505af1158015610af0573d5f803e3d5ffd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c6891506024015f604051808303815f87803b158015610b53575f80fd5b505af1158015610b65573d5f803e3d5ffd5b5050505f8381526002602052604080822081516060810190925280549293509091829060ff166001811115610b9c57610b9c6110c1565b6001811115610bad57610bad6110c1565b8152815461010090046001600160a01b03166020808301919091526001928301546040928301525f878152600290915290812080546001600160a81b031916815590910181905590915081516001811115610c0a57610c0a6110c1565b03610c875780602001516001600160a01b03166323b872dd303384604001516040518463ffffffff1660e01b8152600401610c4793929190611181565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099091906111a5565b600181516001811115610c9c57610c9c6110c1565b03610d075780602001516001600160a01b03166342842e0e303384604001516040518463ffffffff1660e01b8152600401610cd993929190611181565b5f604051808303815f87803b158015610cf0575f80fd5b505af1158015610d02573d5f803e3d5ffd5b505050505b505050565b6001600160a01b0381163314610d355760405163334bd91960e11b815260040160405180910390fd5b610d078282610e85565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f82815260208190526040902060010154610d8181610de9565b6109908383610e85565b7fcbe57d46f7844809422e6f95d2bbc9137663d743e4e0f79509f026faea35035d610db581610de9565b8115610dd257610d075f805160206111dc8339815191528461096c565b610d075f805160206111dc83398151915284610d67565b610df38133610eee565b50565b5f610e018383610d3f565b610e7e575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610e363390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103aa565b505f6103aa565b5f610e908383610d3f565b15610e7e575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103aa565b610ef88282610d3f565b610f275760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610407565b5050565b5f60208284031215610f3b575f80fd5b81356001600160e01b031981168114610f52575f80fd5b9392505050565b6001600160a01b0381168114610df3575f80fd5b5f805f805f60808688031215610f81575f80fd5b8535610f8c81610f59565b94506020860135610f9c81610f59565b935060408601359250606086013567ffffffffffffffff80821115610fbf575f80fd5b818801915088601f830112610fd2575f80fd5b813581811115610fe0575f80fd5b896020828501011115610ff1575f80fd5b9699959850939650602001949392505050565b5f60608284031215611014575f80fd5b6040516060810181811067ffffffffffffffff8211171561104357634e487b7160e01b5f52604160045260245ffd5b604052823560028110611054575f80fd5b8152602083013561106481610f59565b60208201526040928301359281019290925250919050565b5f6020828403121561108c575f80fd5b5035919050565b5f80604083850312156110a4575f80fd5b8235915060208301356110b681610f59565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b60608101600285106110f557634e487b7160e01b5f52602160045260245ffd5b9381526001600160a01b0392909216602083015260409091015290565b8015158114610df3575f80fd5b5f8060408385031215611130575f80fd5b823561113b81610f59565b915060208301356110b681611112565b808201808211156103aa57634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561117a575f80fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156111b5575f80fd5b8151610f5281611112565b5f602082840312156111d0575f80fd5b8151610f5281610f5956fe1b1f20d767c7439e2822da585a85b3cc6265de1d9401b3e34d8e37ee3d383da1a26469706673582212208c4a6dea21eebf339e77740ed73353a541135c4faf6007b2ca8aa25427762b5264736f6c63430008140033","sourceMap":"570:5491:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;-1:-1:-1;2565:202:0;;;;;:::i;:::-;;:::i;:::-;;;470:14:76;;463:22;445:41;;433:2;418:18;2565:202:0;;;;;;;;4594:1401:47;;;;;;;;;;-1:-1:-1;4594:1401:47;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1736:33:76;;;1718:52;;1706:2;1691:18;4594:1401:47;1574:202:76;2349:1364:47;;;;;;:::i;:::-;;:::i;:::-;;;2758:25:76;;;2746:2;2731:18;2349:1364:47;2612:177:76;1262:72:47;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:72:47;;3810:120:0;;;;;;;;;;-1:-1:-1;3810:120:0;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;4226:136;;;;;;;;;;-1:-1:-1;4226:136:0;;;;;:::i;:::-;;:::i;3719:869:47:-;;;;;;;;;;-1:-1:-1;3719:869:47;;;;;:::i;:::-;;:::i;5328:245:0:-;;;;;;;;;;-1:-1:-1;5328:245:0;;;;;:::i;:::-;;:::i;1341:52:47:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3830:32:76;;;3812:51;;3800:2;3785:18;1341:52:47;3666:203:76;2854:136:0;;;;;;;;;;-1:-1:-1;2854:136:0;;;;;:::i;:::-;;:::i;2187:49::-;;;;;;;;;;-1:-1:-1;2187:49:0;2232:4;2187:49;;1488:52:47;;;;;;;;;;-1:-1:-1;1488:52:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1488:52:47;;;;;;;;;;;;;:::i;4642:138:0:-;;;;;;;;;;-1:-1:-1;4642:138:0;;;;;:::i;:::-;;:::i;1188:68:47:-;;;;;;;;;;;;1229:27;1188:68;;2073:270;;;;;;;;;;-1:-1:-1;2073:270:47;;;;;:::i;:::-;;:::i;2565:202:0:-;2650:4;-1:-1:-1;;;;;;2673:47:0;;-1:-1:-1;;;2673:47:0;;:87;;-1:-1:-1;;;;;;;;;;862:40:17;;;2724:36:0;2666:94;2565:202;-1:-1:-1;;2565:202:0:o;4594:1401:47:-;4708:6;4734:37;-1:-1:-1;;;;;;;;;;;4760:10:47;4734:7;:37::i;:::-;4726:70;;;;-1:-1:-1;;;4726:70:47;;5237:2:76;4726:70:47;;;5219:21:76;5276:2;5256:18;;;5249:30;-1:-1:-1;;;5295:18:76;;;5288:50;5355:18;;4726:70:47;;;;;;;;;-1:-1:-1;;;;4594:1401:47;;;;;;;:::o;2349:1364::-;2474:7;2440;:23;;;898:42;-1:-1:-1;;;;;;;;;;;924:15:47;898:7;:42::i;:::-;890:75;;;;-1:-1:-1;;;890:75:47;;5237:2:76;890:75:47;;;5219:21:76;5276:2;5256:18;;;5249:30;-1:-1:-1;;;5295:18:76;;;5288:50;5355:18;;890:75:47;5035:344:76;890:75:47;2511:1:::1;2493:14:::0;::::1;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;2609:18:47::1;::::0;-1:-1:-1;2585:20:47;;:42:::1;::::0;::::1;;;;;;:::i;:::-;::::0;2581:910:::1;;2671:23;::::0;::::1;::::0;2664:56:::1;::::0;-1:-1:-1;;;2664:56:47;;2714:4:::1;2664:56;::::0;::::1;3812:51:76::0;2643:18:47::1;::::0;-1:-1:-1;;;;;2664:41:47::1;::::0;::::1;::::0;3785:18:76;;2664:56:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2643:77;;2741:7;:23;;;-1:-1:-1::0;;;;;2734:44:47::1;;2787:4;2794:10;2806:7;:23;;;2734:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;2873:23:47::1;::::0;::::1;::::0;2866:56:::1;::::0;-1:-1:-1;;;2866:56:47;;2916:4:::1;2866:56;::::0;::::1;3812:51:76::0;2844:19:47::1;::::0;-1:-1:-1;;;;;2866:41:47::1;::::0;::::1;::::0;3785:18:76;;2866:56:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2844:78;;2972:7;:23;;;2959:10;:36;;;;:::i;:::-;2944:11;:51;2936:90;;;::::0;-1:-1:-1;;;2936:90:47;;6632:2:76;2936:90:47::1;::::0;::::1;6614:21:76::0;6671:2;6651:18;;;6644:30;6710:28;6690:18;;;6683:56;6756:18;;2936:90:47::1;6430:350:76::0;2936:90:47::1;2629:408;;2581:910;;;3071:19;3047:20:::0;;:43:::1;::::0;::::1;;;;;;:::i;:::-;::::0;3043:448:::1;;3122:23;::::0;::::1;::::0;3155::::1;::::0;;::::1;::::0;3114:65;;-1:-1:-1;;;3114:65:47;;::::1;::::0;::::1;2758:25:76::0;;;;3183:10:47::1;::::0;-1:-1:-1;;;;;3114:40:47::1;::::0;::::1;::::0;2731:18:76;;3114:65:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3114:79:47::1;;3106:123;;;::::0;-1:-1:-1;;;3106:123:47;;7243:2:76;3106:123:47::1;::::0;::::1;7225:21:76::0;7282:2;7262:18;;;7255:30;7321:33;7301:18;;;7294:61;7372:18;;3106:123:47::1;7041:355:76::0;3106:123:47::1;3251:7;:23;;;-1:-1:-1::0;;;;;3243:49:47::1;;3301:4;3308:10;3320:7;:23;;;3243:101;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3443:4;-1:-1:-1::0;;;;;3366:82:47::1;3374:7;:23;;;-1:-1:-1::0;;;;;3366:40:47::1;;3407:7;:23;;;3366:65;;;;;;;;;;;;;2758:25:76::0;;2746:2;2731:18;;2612:177;3366:65:47::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3366:82:47::1;;3358:122;;;::::0;-1:-1:-1;;;3358:122:47;;7603:2:76;3358:122:47::1;::::0;::::1;7585:21:76::0;7642:2;7622:18;;;7615:30;7681:29;7661:18;;;7654:57;7728:18;;3358:122:47::1;7401:351:76::0;3358:122:47::1;3539:14;::::0;;3530:24:::1;::::0;;;:8:::1;:24;::::0;;;;:34;;;;3557:7;;3530:24;;-1:-1:-1;;3530:34:47::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;3530:34:47::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;3530:34:47::1;;-1:-1:-1::0;;;;;3530:34:47;;::::1;;;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;3530:34:47;;::::1;::::0;3659:14;;3604:70;;-1:-1:-1;;;3604:70:47;;3647:10:::1;3604:70;::::0;::::1;7931:51:76::0;7998:18;;;7991:34;;;;3613:27:47::1;3604:42;::::0;::::1;::::0;7904:18:76;;3604:70:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3692:14:47::1;::::0;;2349:1364;-1:-1:-1;;;;;2349:1364:47:o;4226:136:0:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;3719:869:47:-;693:60;;-1:-1:-1;;;693:60:47;;;;;2758:25:76;;;3790:14:47;;757:10;;-1:-1:-1;;;;;701:27:47;693:44;;;;2731:18:76;;693:60:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;693:74:47;;685:117;;;;-1:-1:-1;;;685:117:47;;8238:2:76;685:117:47;;;8220:21:76;8277:2;8257:18;;;8250:30;8316:32;8296:18;;;8289:60;8366:18;;685:117:47;8036:354:76;685:117:47;3881:95:::1;::::0;-1:-1:-1;;;3881:95:47;;-1:-1:-1;;;;;3889:27:47::1;3881:53;::::0;::::1;::::0;:95:::1;::::0;3935:10:::1;::::0;3955:4:::1;::::0;3961:14;;3881:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4016:58:47::1;::::0;-1:-1:-1;;;4016:58:47;;::::1;::::0;::::1;2758:25:76::0;;;4025:27:47::1;-1:-1:-1::0;;;;;4016:42:47::1;::::0;-1:-1:-1;4016:42:47::1;::::0;-1:-1:-1;2731:18:76;;4016:58:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;4085:31:47::1;4119:24:::0;;;:8:::1;:24;::::0;;;;;4085:58;;::::1;::::0;::::1;::::0;;;;;:31;;-1:-1:-1;4085:58:47;;;;::::1;;::::0;;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;4085:58:47::1;;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;4160:24:47;;;:8:::1;:24:::0;;;;;;4153:31;;-1:-1:-1;;;;;;4153:31:47;;;;;::::1;::::0;;;4085:58;;-1:-1:-1;4236:20:47;;:42:::1;::::0;::::1;;;;;;:::i;:::-;::::0;4232:350:::1;;4301:7;:23;;;-1:-1:-1::0;;;;;4294:44:47::1;;4347:4;4354:10;4366:7;:23;;;4294:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4232:350::-;4435:19;4411:20:::0;;:43:::1;::::0;::::1;;;;;;:::i;:::-;::::0;4407:175:::1;;4478:7;:23;;;-1:-1:-1::0;;;;;4470:49:47::1;;4528:4;4535:10;4547:7;:23;;;4470:101;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4407:175;3806:782;3719:869:::0;;:::o;5328:245:0:-;-1:-1:-1;;;;;5421:34:0;;735:10:12;5421:34:0;5417:102;;5478:30;;-1:-1:-1;;;5478:30:0;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;2854:136::-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:0;;;;;;;;;;;;;;;2854:136::o;4642:138::-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;2073:270:47:-:0;1229:27;2464:16:0;2475:4;2464:10;:16::i;:::-;2183:7:47::1;2179:158;;;2206:44;-1:-1:-1::0;;;;;;;;;;;2234:15:47::1;2206:9;:44::i;2179:158::-;2281:45;-1:-1:-1::0;;;;;;;;;;;2310:15:47::1;2281:10;:45::i;3199:103:0:-:0;3265:30;3276:4;735:10:12;3265::0;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:0;;;;;;;;;:36;;-1:-1:-1;;6315:36:0;6347:4;6315:36;;;6397:12;735:10:12;;656:96;6397:12:0;-1:-1:-1;;;;;6370:40:0;6388:7;-1:-1:-1;;;;;6370:40:0;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:0;6424:11;;6272:217;-1:-1:-1;6473:5:0;6466:12;;6732:317;6810:4;6830:22;6838:4;6844:7;6830;:22::i;:::-;6826:217;;;6900:5;6868:12;;;;;;;;;;;-1:-1:-1;;;;;6868:29:0;;;;;;;;;;:37;;-1:-1:-1;;6868:37:0;;;6924:40;735:10:12;;6868:12:0;;6924:40;;6900:5;6924:40;-1:-1:-1;6985:4:0;6978:11;;3432:197;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:0;;-1:-1:-1;;;;;7949:32:76;;3565:47:0;;;7931:51:76;7998:18;;;7991:34;;;7904:18;;3565:47:0;7757:274:76;3515:108:0;3432:197;;:::o;14:286:76:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:76;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:76:o;497:131::-;-1:-1:-1;;;;;572:31:76;;562:42;;552:70;;618:1;615;608:12;633:936;730:6;738;746;754;762;815:3;803:9;794:7;790:23;786:33;783:53;;;832:1;829;822:12;783:53;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:76;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;-1:-1:-1;1116:2:76;1101:18;;1088:32;;-1:-1:-1;1171:2:76;1156:18;;1143:32;1194:18;1224:14;;;1221:34;;;1251:1;1248;1241:12;1221:34;1289:6;1278:9;1274:22;1264:32;;1334:7;1327:4;1323:2;1319:13;1315:27;1305:55;;1356:1;1353;1346:12;1305:55;1396:2;1383:16;1422:2;1414:6;1411:14;1408:34;;;1438:1;1435;1428:12;1408:34;1483:7;1478:2;1469:6;1465:2;1461:15;1457:24;1454:37;1451:57;;;1504:1;1501;1494:12;1451:57;633:936;;;;-1:-1:-1;633:936:76;;-1:-1:-1;1535:2:76;1527:11;;1557:6;633:936;-1:-1:-1;;;633:936:76:o;1781:826::-;1875:6;1928:2;1916:9;1907:7;1903:23;1899:32;1896:52;;;1944:1;1941;1934:12;1896:52;1977:2;1971:9;2019:2;2011:6;2007:15;2088:6;2076:10;2073:22;2052:18;2040:10;2037:34;2034:62;2031:185;;;2138:10;2133:3;2129:20;2126:1;2119:31;2173:4;2170:1;2163:15;2201:4;2198:1;2191:15;2031:185;2232:2;2225:22;2269:23;;2321:1;2311:12;;2301:40;;2337:1;2334;2327:12;2301:40;2350:21;;2423:2;2408:18;;2395:32;2436:33;2395:32;2436:33;:::i;:::-;2497:2;2485:15;;2478:32;2571:2;2556:18;;;2543:32;2526:15;;;2519:57;;;;-1:-1:-1;2489:6:76;1781:826;-1:-1:-1;1781:826:76:o;2976:180::-;3035:6;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;-1:-1:-1;3127:23:76;;2976:180;-1:-1:-1;2976:180:76:o;3161:315::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3342:9;3329:23;3319:33;;3402:2;3391:9;3387:18;3374:32;3415:31;3440:5;3415:31;:::i;:::-;3465:5;3455:15;;;3161:315;;;;;:::o;3874:127::-;3935:10;3930:3;3926:20;3923:1;3916:31;3966:4;3963:1;3956:15;3990:4;3987:1;3980:15;4006:514;4212:2;4197:18;;4245:1;4234:13;;4224:144;;4290:10;4285:3;4281:20;4278:1;4271:31;4325:4;4322:1;4315:15;4353:4;4350:1;4343:15;4224:144;4377:25;;;-1:-1:-1;;;;;4438:32:76;;;;4433:2;4418:18;;4411:60;4502:2;4487:18;;;4480:34;4006:514;:::o;4525:118::-;4611:5;4604:13;4597:21;4590:5;4587:32;4577:60;;4633:1;4630;4623:12;4648:382;4713:6;4721;4774:2;4762:9;4753:7;4749:23;4745:32;4742:52;;;4790:1;4787;4780:12;4742:52;4829:9;4816:23;4848:31;4873:5;4848:31;:::i;:::-;4898:5;-1:-1:-1;4955:2:76;4940:18;;4927:32;4968:30;4927:32;4968:30;:::i;5384:222::-;5449:9;;;5470:10;;;5467:133;;;5522:10;5517:3;5513:20;5510:1;5503:31;5557:4;5554:1;5547:15;5585:4;5582:1;5575:15;5611:184;5681:6;5734:2;5722:9;5713:7;5709:23;5705:32;5702:52;;;5750:1;5747;5740:12;5702:52;-1:-1:-1;5773:16:76;;5611:184;-1:-1:-1;5611:184:76:o;5800:375::-;-1:-1:-1;;;;;6058:15:76;;;6040:34;;6110:15;;;;6105:2;6090:18;;6083:43;6157:2;6142:18;;6135:34;;;;5990:2;5975:18;;5800:375::o;6180:245::-;6247:6;6300:2;6288:9;6279:7;6275:23;6271:32;6268:52;;;6316:1;6313;6306:12;6268:52;6348:9;6342:16;6367:28;6389:5;6367:28;:::i;6785:251::-;6855:6;6908:2;6896:9;6887:7;6883:23;6879:32;6876:52;;;6924:1;6921;6914:12;6876:52;6956:9;6950:16;6975:31;7000:5;6975:31;:::i","linkReferences":{},"immutableReferences":{"50180":[{"start":584,"length":32},{"start":2315,"length":32},{"start":2488,"length":32},{"start":2702,"length":32},{"start":2824,"length":32}]}},"methodIdentifiers":{"ALLOWED_CONTRACT()":"1e984822","DEFAULT_ADMIN_ROLE()":"a217fddf","TREASURY_OWNER()":"e84532a1","createDeposit((uint8,address,uint256))":"1dc7e3a4","depositTokenContractAddress()":"6072e577","deposits(uint256)":"b02c43d0","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","onERC721Received(address,address,uint256,bytes)":"150b7a02","redeemDeposit(uint256)":"31a64434","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateAllowlist(address,bool)":"e8ee6002"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc721FactoryAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"ALLOWED_CONTRACT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum OGRETokenizedTreasury.ContractType\",\"name\":\"contractType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"internalType\":\"struct OGRETokenizedTreasury.TokenizedDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"createDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"enum OGRETokenizedTreasury.ContractType\",\"name\":\"contractType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOrTokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"depositTokenId\",\"type\":\"uint256\"}],\"name\":\"redeemDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"updateAllowlist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Open Governance Referendum Engine Tokenized Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETokenizedTreasury.sol\":\"OGRETokenizedTreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67\",\"dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETokenizedTreasury.sol\":{\"keccak256\":\"0x0990fb8890a47a8ef4d4433ce80827950efb688a236dd90beff746a4ca779820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbfbebca4f365f1e3c597fcfa53ab8e12aba236ca33c83383a7f0a0141e76f9e\",\"dweb:/ipfs/QmaPCXP1m94Vas6br1QXDqeFKJjaAznBa21E6Hq9XHCfC6\"]},\"src/interfaces/IOGRE721.sol\":{\"keccak256\":\"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6\",\"dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g\"]},\"src/interfaces/IOGRE721Factory.sol\":{\"keccak256\":\"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56\",\"dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"erc721FactoryAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLOWED_CONTRACT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct OGRETokenizedTreasury.TokenizedDeposit","name":"deposit","type":"tuple","components":[{"internalType":"enum OGRETokenizedTreasury.ContractType","name":"contractType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"createDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"enum OGRETokenizedTreasury.ContractType","name":"contractType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"amountOrTokenId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"uint256","name":"depositTokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeemDeposit"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateAllowlist"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETokenizedTreasury.sol":"OGRETokenizedTreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xc1bebdee8943bd5e9ef1e0f2e63296aa1dd4171a66b9e74d0286220e891e1458","urls":["bzz-raw://928cf2f0042c606f3dcb21bd8a272573f462a215cd65285d2d6b407f31e9bd67","dweb:/ipfs/QmWGxjckno6sfjHPX5naPnsfsyisgy4PJDf46eLw9umfpx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530","urls":["bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0","dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETokenizedTreasury.sol":{"keccak256":"0x0990fb8890a47a8ef4d4433ce80827950efb688a236dd90beff746a4ca779820","urls":["bzz-raw://fbfbebca4f365f1e3c597fcfa53ab8e12aba236ca33c83383a7f0a0141e76f9e","dweb:/ipfs/QmaPCXP1m94Vas6br1QXDqeFKJjaAznBa21E6Hq9XHCfC6"],"license":"UNLICENSED"},"src/interfaces/IOGRE721.sol":{"keccak256":"0x874ee0718ebfa3291d19dfb785bb9f57d3824d47d1b30d3169f66297a4778523","urls":["bzz-raw://ce6ddec856298eb7a1136294cb9033968ac222de54130d874bfa8ebc529daaf6","dweb:/ipfs/QmfAX64uqyTrPsYu7CPY384Z3VP7Cnm4fuKfYaTuTLki8g"],"license":"UNLICENSED"},"src/interfaces/IOGRE721Factory.sol":{"keccak256":"0x9dfd4c0dfb82366d31e47b4b490fbab6ec5d01b773b4776664f529a2abc90c35","urls":["bzz-raw://639baedfa9b4096915e16bafd1c057dd0c24735400c6c610e54e390edbb62e56","dweb:/ipfs/QmUc4oGAMdmXxhwRtwteQiaAy9bdFvxqrRYnRf56f5tcez"],"license":"UNLICENSED"}},"version":1},"id":47} \ No newline at end of file diff --git a/out/OGRETreasury.sol/OGRETreasury.json b/out/OGRETreasury.sol/OGRETreasury.json deleted file mode 100644 index 69741e7..0000000 --- a/out/OGRETreasury.sol/OGRETreasury.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"daoAddress_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"daoAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"erc721Contract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033","sourceMap":"485:1201:6:-:0;;;581:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;622:11;-1:-1:-1;;;;;1273:26:0;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;455:51:9;428:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;645:24:6::1;;::::0;485:1201;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:9:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:9;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:9:o;309:203::-;485:1201:6;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033","sourceMap":"485:1201:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:562;;;;;;;;;;-1:-1:-1;682:562:6;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1253:33:9;;;1235:52;;1223:2;1208:18;682:562:6;;;;;;;;535:35;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1462:32:9;;;1444:51;;1432:2;1417:18;535:35:6;1298:203:9;1726:84:4;;;;;;;;;;-1:-1:-1;1773:4:4;1796:7;-1:-1:-1;;;1796:7:4;;;;1726:84;;1671:14:9;;1664:22;1646:41;;1634:2;1619:18;1726:84:4;1506:187:9;2293:101:0;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;1250:370:6;;;;;;;;;;-1:-1:-1;1250:370:6;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;;;;;-1:-1:-1;2543:215:0;;;;;:::i;:::-;;:::i;682:562:6:-;1023:30;;-1:-1:-1;;;1023:30:6;;;;;2557:25:9;;;796:6:6;;1065:4;;-1:-1:-1;;;;;1023:21:6;;;;;2530:18:9;;1023:30:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1023:47:6;;1015:77;;;;-1:-1:-1;;;1015:77:6;;3051:2:9;1015:77:6;;;3033:21:9;3090:2;3070:18;;;3063:30;-1:-1:-1;;;3109:18:9;;;3102:47;3166:18;;1015:77:6;;;;;;;;;-1:-1:-1;;;;682:562:6;;;;;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1250:370:6:-;1488:68;;-1:-1:-1;;;1488:68:6;;1537:4;1488:68;;;3435:34:9;-1:-1:-1;;;;;3505:15:9;;;3485:18;;;3478:43;3537:18;;;3530:34;;;1488:40:6;;;;;3370:18:9;;1488:68:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:370;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;1444:51:9::0;1417:18;;2672:31:0::1;1298:203:9::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:3;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:3;1901:40:0;;;1444:51:9;1417:18;;1901:40:0;1298:203:9;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:9:-;-1:-1:-1;;;;;89:31:9;;79:42;;69:70;;135:1;132;125:12;150:936;247:6;255;263;271;279;332:3;320:9;311:7;307:23;303:33;300:53;;;349:1;346;339:12;300:53;388:9;375:23;407:31;432:5;407:31;:::i;:::-;457:5;-1:-1:-1;514:2:9;499:18;;486:32;527:33;486:32;527:33;:::i;:::-;579:7;-1:-1:-1;633:2:9;618:18;;605:32;;-1:-1:-1;688:2:9;673:18;;660:32;711:18;741:14;;;738:34;;;768:1;765;758:12;738:34;806:6;795:9;791:22;781:32;;851:7;844:4;840:2;836:13;832:27;822:55;;873:1;870;863:12;822:55;913:2;900:16;939:2;931:6;928:14;925:34;;;955:1;952;945:12;925:34;1000:7;995:2;986:6;982:2;978:15;974:24;971:37;968:57;;;1021:1;1018;1011:12;968:57;150:936;;;;-1:-1:-1;150:936:9;;-1:-1:-1;1052:2:9;1044:11;;1074:6;150:936;-1:-1:-1;;;150:936:9:o;1698:456::-;1775:6;1783;1791;1844:2;1832:9;1823:7;1819:23;1815:32;1812:52;;;1860:1;1857;1850:12;1812:52;1899:9;1886:23;1918:31;1943:5;1918:31;:::i;:::-;1968:5;-1:-1:-1;2025:2:9;2010:18;;1997:32;2038:33;1997:32;2038:33;:::i;:::-;1698:456;;2090:7;;-1:-1:-1;;;2144:2:9;2129:18;;;;2116:32;;1698:456::o;2159:247::-;2218:6;2271:2;2259:9;2250:7;2246:23;2242:32;2239:52;;;2287:1;2284;2277:12;2239:52;2326:9;2313:23;2345:31;2370:5;2345:31;:::i;:::-;2395:5;2159:247;-1:-1:-1;;;2159:247:9:o;2593:251::-;2663:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:52;;;2732:1;2729;2722:12;2684:52;2764:9;2758:16;2783:31;2808:5;2783:31;:::i","linkReferences":{},"immutableReferences":{"445":[{"start":213,"length":32}]}},"methodIdentifiers":{"daoAddress()":"2131c68c","onERC721Received(address,address,uint256,bytes)":"150b7a02","owner()":"8da5cb5b","paused()":"5c975abb","renounceOwnership()":"715018a6","sendERC721(address,address,uint256)":"b72ac8ea","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"daoAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Open Governance Referendum Engine Treasury Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/OGRETreasury.sol\":\"OGRETreasury\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d\",\"dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"daoAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc721Contract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/OGRETreasury.sol":"OGRETreasury"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed","urls":["bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d","dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF"],"license":"UNLICENSED"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json b/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json deleted file mode 100644 index 8cfad15..0000000 --- a/out/OGRETreasuryFactory.sol/OGRETreasuryFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"produceOGRETreasury","inputs":[{"name":"daoAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506107b58061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610123565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d90610116565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610150565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a192915050565b61060a8061017683390190565b5f60208284031215610133575f80fd5b81356001600160a01b0381168114610149575f80fd5b9392505050565b8082018082111561016f57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033a2646970667358221220fa3b5f0194ffc4d2c07fe26970dc843bff9cec93cb6a57e1e9130eddd79e9dcf64736f6c63430008140033","sourceMap":"134:322:8:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063173501651461003857806328261ce514610053575b5f80fd5b6100405f5481565b6040519081526020015b60405180910390f35b610066610061366004610123565b61007e565b6040516001600160a01b03909116815260200161004a565b5f808260405161008d90610116565b6001600160a01b039091168152602001604051809103905ff0801580156100b6573d5f803e3d5ffd5b50905060015f808282546100ca9190610150565b9091555050604080516001600160a01b03831681523360208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a192915050565b61060a8061017683390190565b5f60208284031215610133575f80fd5b81356001600160a01b0381168114610149575f80fd5b9392505050565b8082018082111561016f57634e487b7160e01b5f52601160045260245ffd5b9291505056fe60a060405234801561000f575f80fd5b5060405161060a38038061060a83398101604081905261002e916100c6565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006581610077565b506001600160a01b03166080526100f3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100d6575f80fd5b81516001600160a01b03811681146100ec575f80fd5b9392505050565b60805161050061010a5f395f60d501526105005ff3fe608060405260043610610073575f3560e01c8063715018a61161004d578063715018a6146101375780638da5cb5b1461014b578063b72ac8ea14610167578063f2fde38b146101865761007a565b8063150b7a02146100875780632131c68c146100c45780635c975abb1461010f5761007a565b3661007a57005b348015610085575f80fd5b005b348015610092575f80fd5b506100a66100a13660046103b8565b6101a5565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156100cf575f80fd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f80fd5b505f54600160a01b900460ff1660405190151581526020016100bb565b348015610142575f80fd5b50610085610271565b348015610156575f80fd5b505f546001600160a01b03166100f7565b348015610172575f80fd5b5061008561018136600461044f565b610284565b348015610191575f80fd5b506100856101a036600461048d565b6102ec565b6040516331a9108f60e11b8152600481018490525f9030906001600160a01b03871690636352211e90602401602060405180830381865afa1580156101ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021091906104af565b6001600160a01b03161461025f5760405162461bcd60e51b81526020600482015260116024820152701a5d195b481b9bdd081c9958d95a5d9959607a1b60448201526064015b60405180910390fd5b50630a85bd0160e11b95945050505050565b610279610329565b6102825f610355565b565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018390528316906342842e0e906064015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050505050565b6102f4610329565b6001600160a01b03811661031d57604051631e4fbdf760e01b81525f6004820152602401610256565b61032681610355565b50565b5f546001600160a01b031633146102825760405163118cdaa760e01b8152336004820152602401610256565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610326575f80fd5b5f805f805f608086880312156103cc575f80fd5b85356103d7816103a4565b945060208601356103e7816103a4565b935060408601359250606086013567ffffffffffffffff8082111561040a575f80fd5b818801915088601f83011261041d575f80fd5b81358181111561042b575f80fd5b89602082850101111561043c575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610461575f80fd5b833561046c816103a4565b9250602084013561047c816103a4565b929592945050506040919091013590565b5f6020828403121561049d575f80fd5b81356104a8816103a4565b9392505050565b5f602082840312156104bf575f80fd5b81516104a8816103a456fea2646970667358221220434e5b48dbefc7b8eb8a56f7d0152a16395843c2c08f05bdab8e7101c8aa282c64736f6c63430008140033a2646970667358221220fa3b5f0194ffc4d2c07fe26970dc843bff9cec93cb6a57e1e9130eddd79e9dcf64736f6c63430008140033","sourceMap":"134:322:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:7;;;;;;;;;160:25:9;;;148:2;133:18;151:30:7;;;;;;;;185:269:8;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;651:32:9;;;633:51;;621:2;606:18;185:269:8;487:203:9;185:269:8;250:7;269:21;310:10;293:28;;;;;:::i;:::-;-1:-1:-1;;;;;651:32:9;;;633:51;;621:2;606:18;293:28:8;;;;;;;;;;;;;;;;;;;;;;;269:52;;350:1;331:15;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;366:47:8;;;-1:-1:-1;;;;;1152:15:9;;1134:34;;402:10:8;1199:2:9;1184:18;;1177:43;366:47:8;;1069:18:9;366:47:8;;;;;;;438:8;185:269;-1:-1:-1;;185:269:8:o;-1:-1:-1:-;;;;;;;;:::o;196:286:9:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;350:23;;-1:-1:-1;;;;;402:31:9;;392:42;;382:70;;448:1;445;438:12;382:70;471:5;196:286;-1:-1:-1;;;196:286:9:o;695:222::-;760:9;;;781:10;;;778:133;;;833:10;828:3;824:20;821:1;814:31;868:4;865:1;858:15;896:4;893:1;886:15;778:133;695:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceOGRETreasury(address)":"28261ce5","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"produceOGRETreasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factories/OGRETreasuryFactory.sol\":\"OGRETreasuryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/OGRETreasury.sol\":{\"keccak256\":\"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d\",\"dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF\"]},\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/factories/OGRETreasuryFactory.sol\":{\"keccak256\":\"0x0ceb9a0b4701d51d79137d667dc4afb396bc7de2018f54ddee58a8304c2e06cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a76e69b1fb2cd1ae8d689531c45ba7647c3c35626156fc186c3445d15b985850\",\"dweb:/ipfs/QmSkeh1RrPuS6QaZkzBaT63YXrmaLCA1sfU4Jce5HWS7FB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"daoAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceOGRETreasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factories/OGRETreasuryFactory.sol":"OGRETreasuryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/OGRETreasury.sol":{"keccak256":"0x12cafcb76df426cfeb5d638c0a3a24cb37a6fbf8e2decfd85fbb749b6949c4ed","urls":["bzz-raw://c2d6c03560c30997192653984c628cae217a045c6518e0485d31ec979174df2d","dweb:/ipfs/QmdCeahcJhbXizccD8BPWmWF6tNYHb2G569XbEKZSyiHBF"],"license":"UNLICENSED"},"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/factories/OGRETreasuryFactory.sol":{"keccak256":"0x0ceb9a0b4701d51d79137d667dc4afb396bc7de2018f54ddee58a8304c2e06cf","urls":["bzz-raw://a76e69b1fb2cd1ae8d689531c45ba7647c3c35626156fc186c3445d15b985850","dweb:/ipfs/QmSkeh1RrPuS6QaZkzBaT63YXrmaLCA1sfU4Jce5HWS7FB"],"license":"UNLICENSED"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/Ownable.sol/Ownable.json b/out/Ownable.sol/Ownable.json deleted file mode 100644 index 7c1ffbb..0000000 --- a/out/Ownable.sol/Ownable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":2} \ No newline at end of file diff --git a/out/Panic.sol/Panic.json b/out/Panic.sol/Panic.json deleted file mode 100644 index 01e6963..0000000 --- a/out/Panic.sol/Panic.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010d328d4e4ae843cf9062ce79606f406a983334dc12cef486559dcd20dc87f3b64736f6c63430008140033","sourceMap":"657:1315:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:13;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010d328d4e4ae843cf9062ce79606f406a983334dc12cef486559dcd20dc87f3b64736f6c63430008140033","sourceMap":"657:1315:13:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":"Panic"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/Pausable.sol/Pausable.json b/out/Pausable.sol/Pausable.json deleted file mode 100644 index 6750f2c..0000000 --- a/out/Pausable.sol/Pausable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":"Pausable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/ReentrancyGuard.sol/ReentrancyGuard.json b/out/ReentrancyGuard.sol/ReentrancyGuard.json deleted file mode 100644 index e4674a8..0000000 --- a/out/ReentrancyGuard.sol/ReentrancyGuard.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/out/SafeCast.sol/SafeCast.json b/out/SafeCast.sol/SafeCast.json deleted file mode 100644 index 2d29bd4..0000000 --- a/out/SafeCast.sol/SafeCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeCastOverflowedIntDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedIntToUint","inputs":[{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeCastOverflowedUintToInt","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e3ba180471796f6fb8bf5adf3d8fc418149f234b0e1dc423d8cd3946872b06a64736f6c63430008140033","sourceMap":"769:34173:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:20;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202e3ba180471796f6fb8bf5adf3d8fc418149f234b0e1dc423d8cd3946872b06a64736f6c63430008140033","sourceMap":"769:34173:20:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntDowncast"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntToUint"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintToInt"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":"SafeCast"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/out/SignedMath.sol/SignedMath.json b/out/SignedMath.sol/SignedMath.json deleted file mode 100644 index 9f79494..0000000 --- a/out/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cb6c0bc1896b42d81b7463606635578c08cd5bd41180c19016db8d3f51c354a964736f6c63430008140033","sourceMap":"258:2354:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:21;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cb6c0bc1896b42d81b7463606635578c08cd5bd41180c19016db8d3f51c354a964736f6c63430008140033","sourceMap":"258:2354:21:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/out/StdAssertions.sol/StdAssertions.json b/out/StdAssertions.sol/StdAssertions.json deleted file mode 100644 index a41a74f..0000000 --- a/out/StdAssertions.sol/StdAssertions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":23} \ No newline at end of file diff --git a/out/StdChains.sol/StdChains.json b/out/StdChains.sol/StdChains.json deleted file mode 100644 index 8b40490..0000000 --- a/out/StdChains.sol/StdChains.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":24} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheats.json b/out/StdCheats.sol/StdCheats.json deleted file mode 100644 index 6f7759e..0000000 --- a/out/StdCheats.sol/StdCheats.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheatsSafe.json b/out/StdCheats.sol/StdCheatsSafe.json deleted file mode 100644 index 96c634e..0000000 --- a/out/StdCheats.sol/StdCheatsSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json deleted file mode 100644 index 3efc043..0000000 --- a/out/StdError.sol/stdError.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x610249610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009b575f3560e01c8063986c5f681161006e578063986c5f68146100d5578063b22dc54d146100dd578063b67689da146100e5578063d160e4de146100ed578063fa784a44146100f5575f80fd5b806305ee86121461009f57806310332977146100bd5780631de45560146100c55780638995290f146100cd575b5f80fd5b6100a76100fd565b6040516100b491906101c8565b60405180910390f35b6100a7610138565b6100a761014a565b6100a761015c565b6100a761016e565b6100a7610180565b6100a7610192565b6100a76101a4565b6100a76101b6565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010b565b6040516021602482015260440161010b565b6040516011602482015260440161010b565b6040516041602482015260440161010b565b6040516031602482015260440161010b565b6040516051602482015260440161010b565b6040516022602482015260440161010b565b6040516012602482015260440161010b565b5f6020808352835180828501525f5b818110156101f3578581018301518582016040015282016101d7565b505f604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203f962d64300ad26ad14f2ca796e7d8502b6efb9bae8b8c75aaa4732d7c032ed164736f6c63430008140033","sourceMap":"162:850:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:26;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009b575f3560e01c8063986c5f681161006e578063986c5f68146100d5578063b22dc54d146100dd578063b67689da146100e5578063d160e4de146100ed578063fa784a44146100f5575f80fd5b806305ee86121461009f57806310332977146100bd5780631de45560146100c55780638995290f146100cd575b5f80fd5b6100a76100fd565b6040516100b491906101c8565b60405180910390f35b6100a7610138565b6100a761014a565b6100a761015c565b6100a761016e565b6100a7610180565b6100a7610192565b6100a76101a4565b6100a76101b6565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010b565b6040516021602482015260440161010b565b6040516011602482015260440161010b565b6040516041602482015260440161010b565b6040516031602482015260440161010b565b6040516051602482015260440161010b565b6040516022602482015260440161010b565b6040516012602482015260440161010b565b5f6020808352835180828501525f5b818110156101f3578581018301518582016040015282016101d7565b505f604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203f962d64300ad26ad14f2ca796e7d8502b6efb9bae8b8c75aaa4732d7c032ed164736f6c63430008140033","sourceMap":"162:850:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:76;699:18;;778:47:26;;;;-1:-1:-1;;778:47:26;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:26;-1:-1:-1;;;778:47:26;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:76;699:18;;224:47:26;573:195:76;461:91:26;505:47;;547:4;505:47;;;726:36:76;699:18;;505:47:26;573:195:76;277:87:26;317:47;;359:4;317:47;;;726:36:76;699:18;;317:47:26;573:195:76;831:88:26;872:47;;914:4;872:47;;;726:36:76;699:18;;872:47:26;573:195:76;654:80:26;687:47;;729:4;687:47;;;726:36:76;699:18;;687:47:26;573:195:76;925:84:26;962:47;;1004:4;962:47;;;726:36:76;699:18;;962:47:26;573:195:76;558:90:26;601:47;;643:4;601:47;;;726:36:76;699:18;;601:47:26;573:195:76;370:85:26;408:47;;450:4;408:47;;;726:36:76;699:18;;408:47:26;573:195:76;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"id":26} \ No newline at end of file diff --git a/out/StdInvariant.sol/StdInvariant.json b/out/StdInvariant.sol/StdInvariant.json deleted file mode 100644 index 4cfb18d..0000000 --- a/out/StdInvariant.sol/StdInvariant.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":\"StdInvariant\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/out/StdJson.sol/stdJson.json b/out/StdJson.sol/stdJson.json deleted file mode 100644 index dee3603..0000000 --- a/out/StdJson.sol/stdJson.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b67ab6628db86ad32f10b0ac10bf4226c8a4d9e28060053b7589c005d258657264736f6c63430008140033","sourceMap":"610:9092:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:9092:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b67ab6628db86ad32f10b0ac10bf4226c8a4d9e28060053b7589c005d258657264736f6c63430008140033","sourceMap":"610:9092:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":28} \ No newline at end of file diff --git a/out/StdMath.sol/stdMath.json b/out/StdMath.sol/stdMath.json deleted file mode 100644 index 1d865b9..0000000 --- a/out/StdMath.sol/stdMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf1ab13ab763d492e1b95650ea6de0bc706e5936c4756720f079a80ee6879c7264736f6c63430008140033","sourceMap":"65:1294:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf1ab13ab763d492e1b95650ea6de0bc706e5936c4756720f079a80ee6879c7264736f6c63430008140033","sourceMap":"65:1294:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorage.json b/out/StdStorage.sol/stdStorage.json deleted file mode 100644 index 816dc5e..0000000 --- a/out/StdStorage.sol/stdStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220984f2f377ab4286b9db5969877269920ea51f45deaa4fadbd36c49a848ff958a64736f6c63430008140033","sourceMap":"12759:5081:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;12759:5081:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220984f2f377ab4286b9db5969877269920ea51f45deaa4fadbd36c49a848ff958a64736f6c63430008140033","sourceMap":"12759:5081:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":30} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorageSafe.json b/out/StdStorage.sol/stdStorageSafe.json deleted file mode 100644 index 206822d..0000000 --- a/out/StdStorage.sol/stdStorageSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122047fcb521fa462abfe2bd04eddfcffcdf22054b98e32edcc6c4db937a0cf95ef264736f6c63430008140033","sourceMap":"450:12307:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;450:12307:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122047fcb521fa462abfe2bd04eddfcffcdf22054b98e32edcc6c4db937a0cf95ef264736f6c63430008140033","sourceMap":"450:12307:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":30} \ No newline at end of file diff --git a/out/StdStyle.sol/StdStyle.json b/out/StdStyle.sol/StdStyle.json deleted file mode 100644 index 734871a..0000000 --- a/out/StdStyle.sol/StdStyle.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208051b43d8d2e5f3f04e954fed7e70b4a45a126c3d7695af289ad4c7afc4bdd6c64736f6c63430008140033","sourceMap":"100:10361:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;100:10361:31;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208051b43d8d2e5f3f04e954fed7e70b4a45a126c3d7695af289ad4c7afc4bdd6c64736f6c63430008140033","sourceMap":"100:10361:31:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":31} \ No newline at end of file diff --git a/out/StdToml.sol/stdToml.json b/out/StdToml.sol/stdToml.json deleted file mode 100644 index b1a8247..0000000 --- a/out/StdToml.sol/stdToml.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a1254bd5425cff2748442d844c245e57468147fd597bb332f9f1a697da6b7a8a64736f6c63430008140033","sourceMap":"610:9092:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:9092:32;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220a1254bd5425cff2748442d844c245e57468147fd597bb332f9f1a697da6b7a8a64736f6c63430008140033","sourceMap":"610:9092:32:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":32} \ No newline at end of file diff --git a/out/StdUtils.sol/StdUtils.json b/out/StdUtils.sol/StdUtils.json deleted file mode 100644 index e6e385e..0000000 --- a/out/StdUtils.sol/StdUtils.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/out/Strings.sol/Strings.json b/out/Strings.sol/Strings.json deleted file mode 100644 index 3bc0e13..0000000 --- a/out/Strings.sol/Strings.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringsInvalidAddressFormat","inputs":[]},{"type":"error","name":"StringsInvalidChar","inputs":[]}],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203fe70f2c2da600c3a5a2613686cbd9a389964f4db1b5b16a88e940fbd224e0d264736f6c63430008140033","sourceMap":"297:18980:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:18980:16;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212203fe70f2c2da600c3a5a2613686cbd9a389964f4db1b5b16a88e940fbd224e0d264736f6c63430008140033","sourceMap":"297:18980:16:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidAddressFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidChar\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}],\"StringsInvalidAddressFormat()\":[{\"details\":\"The string being parsed is not a properly formatted address.\"}],\"StringsInvalidChar()\":[{\"details\":\"The string being parsed contains characters that are not in scope of the given base.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[],"type":"error","name":"StringsInvalidAddressFormat"},{"inputs":[],"type":"error","name":"StringsInvalidChar"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae","urls":["bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6","dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/Structs.sol/Structs.json b/out/Structs.sol/Structs.json deleted file mode 100644 index 89a988c..0000000 --- a/out/Structs.sol/Structs.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b69764c0967251c14feeaf20a546237670636617c6056ab65300cf4875c206464736f6c63430008140033","sourceMap":"101:1387:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;101:1387:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b69764c0967251c14feeaf20a546237670636617c6056ab65300cf4875c206464736f6c63430008140033","sourceMap":"101:1387:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Structs.sol\":\"Structs\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/libraries/Enums.sol\":{\"keccak256\":\"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882\",\"dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc\"]},\"src/libraries/Structs.sol\":{\"keccak256\":\"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec\",\"dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/libraries/Structs.sol":"Structs"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/libraries/Enums.sol":{"keccak256":"0x4e93d5850ad92f9bbc6c59d186373aa2030de9dad1e4fe81c0fcc2f85320e6b8","urls":["bzz-raw://f6af2853aa9d3666d1acf58dc4e1da57ce55455aab10904c22ef0717b0f5b882","dweb:/ipfs/QmfQ4ni6FetkvLDY7FYasK1PLS8QSpecXWq9FPGpvoDhZc"],"license":"UNLICENSED"},"src/libraries/Structs.sol":{"keccak256":"0xc2a058d4d53cbf92b023274c6b94f35dd53b9850f37d6e5c94da53345695437f","urls":["bzz-raw://fb65ca23229a795a273f52545746fcac439c42a9026521e3bee787c47ad05aec","dweb:/ipfs/QmatzELaDqLQaPDyZmoZgfAxibLWFiYeE7ZxViBgNXUmsw"],"license":"UNLICENSED"}},"version":1},"id":29} \ No newline at end of file diff --git a/out/StubActionHopper.sol/StubActionHopper.json b/out/StubActionHopper.sol/StubActionHopper.json deleted file mode 100644 index d354ed1..0000000 --- a/out/StubActionHopper.sol/StubActionHopper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"cancelAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isActionLoaded","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"ready","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"loadAction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"sig","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"loadedActions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ActionCancelled","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionExecuted","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActionLoaded","inputs":[{"name":"trxHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sig","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"ready","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ActionExecutionFailed","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ActionNotLoaded","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ActionNotReady","inputs":[{"name":"trxHash","type":"bytes32","internalType":"bytes32"},{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"readyTime","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161088938038061088983398101604081905261002e91610035565b5f5561004c565b5f60208284031215610045575f80fd5b5051919050565b610830806100595f395ff3fe608060405260043610610056575f3560e01c80627bcf6614610061578063313c7d5b1461008257806351ff2b74146100a1578063654f5c4e146100d55780636a42b8f8146100f45780636e8c7ab914610116575f80fd5b3661005d57005b5f80fd5b34801561006c575f80fd5b5061008061007b366004610570565b610144565b005b34801561008d575f80fd5b5061008061009c3660046105e9565b610157565b3480156100ac575f80fd5b506100c06100bb3660046105e9565b610164565b60405190151581526020015b60405180910390f35b3480156100e0575f80fd5b506100806100ef3660046105e9565b6101b1565b3480156100ff575f80fd5b506101085f5481565b6040519081526020016100cc565b348015610121575f80fd5b506100c0610130366004610669565b60016020525f908152604090205460ff1681565b610150848484846101c6565b5050505050565b610150858585858561026d565b5f80868686868660405160200161017f9594939291906106cd565b60408051808303601f1901815291815281516020928301205f908152600190925290205460ff16979650505050505050565b6101be85858585856102fc565b505050505050565b5f805f54426101d59190610718565b90505f86868686856040516020016101f19594939291906106cd565b60408051601f1981840301815282825280516020918201205f81815260019283905292909220805460ff1916909117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd9061025b9083908a908a908a908a90899061073d565b60405180910390a15095945050505050565b5f85858585856040516020016102879594939291906106cd565b60408051601f1981840301815282825280516020918201205f8181526001909252919020805460ff1916905591507f65fc52b902965c1a53e05e64a9d7823fe42907aa394f4ed34111f0fbeea39d32906102ec9083908990899089908990899061073d565b60405180910390a1505050505050565b60605f86868686866040516020016103189594939291906106cd565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915060ff1661036757604051635d96957360e11b8152600481018290526024015b60405180910390fd5b82421161039757604051638e98731160e01b8152600481018290524260248201526044810184905260640161035e565b5f818152600160205260408120805460ff191690558551606091036103bd5750836103e9565b8580519060200120856040516020016103d792919061078f565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad378289898989896040516104229695949392919061073d565b60405180910390a15f80896001600160a01b0316898460405161044591906107bf565b5f6040518083038185875af1925050503d805f811461047f576040519150601f19603f3d011682016040523d82523d5f602084013e610484565b606091505b5091509150816104ab5783816040516309ec695360e41b815260040161035e9291906107da565b9998505050505050505050565b80356001600160a01b03811681146104ce575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f6575f80fd5b813567ffffffffffffffff80821115610511576105116104d3565b604051601f8301601f19908116603f01168101908282118183101715610539576105396104d3565b81604052838152866020858801011115610551575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215610583575f80fd5b61058c856104b8565b935060208501359250604085013567ffffffffffffffff808211156105af575f80fd5b6105bb888389016104e7565b935060608701359150808211156105d0575f80fd5b506105dd878288016104e7565b91505092959194509250565b5f805f805f60a086880312156105fd575f80fd5b610606866104b8565b945060208601359350604086013567ffffffffffffffff80821115610629575f80fd5b61063589838a016104e7565b9450606088013591508082111561064a575f80fd5b50610657888289016104e7565b95989497509295608001359392505050565b5f60208284031215610679575f80fd5b5035919050565b5f5b8381101561069a578181015183820152602001610682565b50505f910152565b5f81518084526106b9816020860160208601610680565b601f01601f19169290920160200192915050565b60018060a01b038616815284602082015260a060408201525f6106f360a08301866106a2565b828103606084015261070581866106a2565b9150508260808301529695505050505050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b92915050565b86815260018060a01b038616602082015284604082015260c060608201525f61076960c08301866106a2565b828103608084015261077b81866106a2565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906107b1816004850160208701610680565b919091016004019392505050565b5f82516107d0818460208701610680565b9190910192915050565b828152604060208201525f6107f260408301846106a2565b94935050505056fea2646970667358221220a2f2701021a77c36d67c0ce59ba07cffe736605e7d3f4307f2bea6ccb54e4d4f64736f6c63430008140033","sourceMap":"164:664:52:-:0;;;217:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:5:49;:14;164:664:52;;14:184:76;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:76;;14:184;-1:-1:-1;14:184:76:o;:::-;164:664:52;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610056575f3560e01c80627bcf6614610061578063313c7d5b1461008257806351ff2b74146100a1578063654f5c4e146100d55780636a42b8f8146100f45780636e8c7ab914610116575f80fd5b3661005d57005b5f80fd5b34801561006c575f80fd5b5061008061007b366004610570565b610144565b005b34801561008d575f80fd5b5061008061009c3660046105e9565b610157565b3480156100ac575f80fd5b506100c06100bb3660046105e9565b610164565b60405190151581526020015b60405180910390f35b3480156100e0575f80fd5b506100806100ef3660046105e9565b6101b1565b3480156100ff575f80fd5b506101085f5481565b6040519081526020016100cc565b348015610121575f80fd5b506100c0610130366004610669565b60016020525f908152604090205460ff1681565b610150848484846101c6565b5050505050565b610150858585858561026d565b5f80868686868660405160200161017f9594939291906106cd565b60408051808303601f1901815291815281516020928301205f908152600190925290205460ff16979650505050505050565b6101be85858585856102fc565b505050505050565b5f805f54426101d59190610718565b90505f86868686856040516020016101f19594939291906106cd565b60408051601f1981840301815282825280516020918201205f81815260019283905292909220805460ff1916909117905591507fc033a419f7d89fe56731c5063af781a0385d4bc7cd66e2ce68fda5c52abb9efd9061025b9083908a908a908a908a90899061073d565b60405180910390a15095945050505050565b5f85858585856040516020016102879594939291906106cd565b60408051601f1981840301815282825280516020918201205f8181526001909252919020805460ff1916905591507f65fc52b902965c1a53e05e64a9d7823fe42907aa394f4ed34111f0fbeea39d32906102ec9083908990899089908990899061073d565b60405180910390a1505050505050565b60605f86868686866040516020016103189594939291906106cd565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915060ff1661036757604051635d96957360e11b8152600481018290526024015b60405180910390fd5b82421161039757604051638e98731160e01b8152600481018290524260248201526044810184905260640161035e565b5f818152600160205260408120805460ff191690558551606091036103bd5750836103e9565b8580519060200120856040516020016103d792919061078f565b60405160208183030381529060405290505b7fb9c70c38e172c4486313c999fbf9d4e951ee83219d0ec61c57547959f089ad378289898989896040516104229695949392919061073d565b60405180910390a15f80896001600160a01b0316898460405161044591906107bf565b5f6040518083038185875af1925050503d805f811461047f576040519150601f19603f3d011682016040523d82523d5f602084013e610484565b606091505b5091509150816104ab5783816040516309ec695360e41b815260040161035e9291906107da565b9998505050505050505050565b80356001600160a01b03811681146104ce575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f6575f80fd5b813567ffffffffffffffff80821115610511576105116104d3565b604051601f8301601f19908116603f01168101908282118183101715610539576105396104d3565b81604052838152866020858801011115610551575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f8060808587031215610583575f80fd5b61058c856104b8565b935060208501359250604085013567ffffffffffffffff808211156105af575f80fd5b6105bb888389016104e7565b935060608701359150808211156105d0575f80fd5b506105dd878288016104e7565b91505092959194509250565b5f805f805f60a086880312156105fd575f80fd5b610606866104b8565b945060208601359350604086013567ffffffffffffffff80821115610629575f80fd5b61063589838a016104e7565b9450606088013591508082111561064a575f80fd5b50610657888289016104e7565b95989497509295608001359392505050565b5f60208284031215610679575f80fd5b5035919050565b5f5b8381101561069a578181015183820152602001610682565b50505f910152565b5f81518084526106b9816020860160208601610680565b601f01601f19169290920160200192915050565b60018060a01b038616815284602082015260a060408201525f6106f360a08301866106a2565b828103606084015261070581866106a2565b9150508260808301529695505050505050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b92915050565b86815260018060a01b038616602082015284604082015260c060608201525f61076960c08301866106a2565b828103608084015261077b81866106a2565b9150508260a0830152979650505050505050565b6001600160e01b03198316815281515f906107b1816004850160208701610680565b919091016004019392505050565b5f82516107d0818460208701610680565b9190910192915050565b828152604060208201525f6107f260408301846106a2565b94935050505056fea2646970667358221220a2f2701021a77c36d67c0ce59ba07cffe736605e7d3f4307f2bea6ccb54e4d4f64736f6c63430008140033","sourceMap":"164:664:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;274:150;;;;;;;;;;-1:-1:-1;274:150:52;;;;;:::i;:::-;;:::i;:::-;;430:176;;;;;;;;;;-1:-1:-1;430:176:52;;;;;:::i;:::-;;:::i;3004:263:49:-;;;;;;;;;;-1:-1:-1;3004:263:49;;;;;:::i;:::-;;:::i;:::-;;;2662:14:76;;2655:22;2637:41;;2625:2;2610:18;3004:263:49;;;;;;;;612:178:52;;;;;;;;;;-1:-1:-1;612:178:52;;;;;:::i;:::-;;:::i;144:20:49:-;;;;;;;;;;;;;;;;;;;2835:25:76;;;2823:2;2808:18;144:20:49;2689:177:76;243:45:49;;;;;;;;;;-1:-1:-1;243:45:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;274:150:52;380:37;392:6;400:5;407:3;412:4;380:11;:37::i;:::-;;274:150;;;;:::o;430:176::-;553:46;567:6;575:5;582:3;587:4;593:5;553:13;:46::i;3004:263:49:-;3133:4;3149:15;3188:6;3196:5;3203:3;3208:4;3214:5;3177:43;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3177:43:49;;;;;;3167:54;;3177:43;3167:54;;;;3238:22;;;;:13;:22;;;;;;;;;3004:263;-1:-1:-1;;;;;;;3004:263:49:o;612:178:52:-;736:47;751:6;759:5;766:3;771:4;777:5;736:14;:47::i;:::-;;612:178;;;;;:::o;3686:388:49:-;3794:7;3813:13;3847:5;;3829:15;:23;;;;:::i;:::-;3813:39;;3863:15;3902:6;3910:5;3917:3;3922:4;3928:5;3891:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3891:43:49;;;;;;;;;3881:54;;3891:43;3881:54;;;;3945:22;;;;3970:4;3945:22;;;;;;;;:29;;-1:-1:-1;;3945:29:49;;;;;;3881:54;-1:-1:-1;3990:54:49;;;;3881;;4012:6;;4020:5;;4027:3;;4032:4;;4038:5;;3990:54;:::i;:::-;;;;;;;;-1:-1:-1;4062:5:49;3686:388;-1:-1:-1;;;;;3686:388:49:o;4382:317::-;4508:15;4547:6;4555:5;4562:3;4567:4;4573:5;4536:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4536:43:49;;;;;;;;;4526:54;;4536:43;4526:54;;;;4597:22;;;;:13;:22;;;;;;4590:29;;-1:-1:-1;;4590:29:49;;;4526:54;-1:-1:-1;4635:57:49;;;;4526:54;;4660:6;;4668:5;;4675:3;;4680:4;;4686:5;;4635:57;:::i;:::-;;;;;;;;4498:201;4382:317;;;;;:::o;5008:907::-;5134:12;5158:15;5197:6;5205:5;5212:3;5217:4;5223:5;5186:43;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5186:43:49;;;;;;;;;5176:54;;5186:43;5176:54;;;;5246:22;;;;:13;:22;;;;;;5176:54;;-1:-1:-1;5246:22:49;;5241:60;;5277:24;;-1:-1:-1;;;5277:24:49;;;;;2835:25:76;;;2808:18;;5277:24:49;;;;;;;;5241:60;5334:5;5315:15;:24;5311:84;;5348:47;;-1:-1:-1;;;5348:47:49;;;;;5526:25:76;;;5372:15:49;5567:18:76;;;5560:34;5610:18;;;5603:34;;;5499:18;;5348:47:49;5324:319:76;5311:84:49;5421:22;;;;:13;:22;;;;;5414:29;;-1:-1:-1;;5414:29:49;;;5489:17;;5453:21;;5489:22;5485:163;;-1:-1:-1;5538:4:49;5485:163;;;5624:3;5608:21;;;;;;5632:4;5584:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5573:64;;5485:163;5663:56;5678:7;5687:6;5695:5;5702:3;5707:4;5713:5;5663:56;;;;;;;;;;;:::i;:::-;;;;;;;;5731:12;5745:23;5772:6;-1:-1:-1;;;;;5772:11:49;5791:5;5798:8;5772:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:77;;;;5822:7;5817:63;;5860:7;5869:10;5838:42;;-1:-1:-1;;;5838:42:49;;;;;;;;;:::i;5817:63::-;5898:10;5008:907;-1:-1:-1;;;;;;;;;5008:907:49:o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:127::-;253:10;248:3;244:20;241:1;234:31;284:4;281:1;274:15;308:4;305:1;298:15;324:719;367:5;420:3;413:4;405:6;401:17;397:27;387:55;;438:1;435;428:12;387:55;474:6;461:20;500:18;537:2;533;530:10;527:36;;;543:18;;:::i;:::-;618:2;612:9;586:2;672:13;;-1:-1:-1;;668:22:76;;;692:2;664:31;660:40;648:53;;;716:18;;;736:22;;;713:46;710:72;;;762:18;;:::i;:::-;802:10;798:2;791:22;837:2;829:6;822:18;883:3;876:4;871:2;863:6;859:15;855:26;852:35;849:55;;;900:1;897;890:12;849:55;964:2;957:4;949:6;945:17;938:4;930:6;926:17;913:54;1011:1;1004:4;999:2;991:6;987:15;983:26;976:37;1031:6;1022:15;;;;;;324:719;;;;:::o;1048:685::-;1153:6;1161;1169;1177;1230:3;1218:9;1209:7;1205:23;1201:33;1198:53;;;1247:1;1244;1237:12;1198:53;1270:29;1289:9;1270:29;:::i;:::-;1260:39;;1346:2;1335:9;1331:18;1318:32;1308:42;;1401:2;1390:9;1386:18;1373:32;1424:18;1465:2;1457:6;1454:14;1451:34;;;1481:1;1478;1471:12;1451:34;1504:50;1546:7;1537:6;1526:9;1522:22;1504:50;:::i;:::-;1494:60;;1607:2;1596:9;1592:18;1579:32;1563:48;;1636:2;1626:8;1623:16;1620:36;;;1652:1;1649;1642:12;1620:36;;1675:52;1719:7;1708:8;1697:9;1693:24;1675:52;:::i;:::-;1665:62;;;1048:685;;;;;;;:::o;1738:754::-;1852:6;1860;1868;1876;1884;1937:3;1925:9;1916:7;1912:23;1908:33;1905:53;;;1954:1;1951;1944:12;1905:53;1977:29;1996:9;1977:29;:::i;:::-;1967:39;;2053:2;2042:9;2038:18;2025:32;2015:42;;2108:2;2097:9;2093:18;2080:32;2131:18;2172:2;2164:6;2161:14;2158:34;;;2188:1;2185;2178:12;2158:34;2211:50;2253:7;2244:6;2233:9;2229:22;2211:50;:::i;:::-;2201:60;;2314:2;2303:9;2299:18;2286:32;2270:48;;2343:2;2333:8;2330:16;2327:36;;;2359:1;2356;2349:12;2327:36;;2382:52;2426:7;2415:8;2404:9;2400:24;2382:52;:::i;:::-;1738:754;;;;-1:-1:-1;1738:754:76;;2481:3;2466:19;2453:33;;1738:754;-1:-1:-1;;;1738:754:76:o;2871:180::-;2930:6;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;-1:-1:-1;3022:23:76;;2871:180;-1:-1:-1;2871:180:76:o;3056:250::-;3141:1;3151:113;3165:6;3162:1;3159:13;3151:113;;;3241:11;;;3235:18;3222:11;;;3215:39;3187:2;3180:10;3151:113;;;-1:-1:-1;;3298:1:76;3280:16;;3273:27;3056:250::o;3311:271::-;3353:3;3391:5;3385:12;3418:6;3413:3;3406:19;3434:76;3503:6;3496:4;3491:3;3487:14;3480:4;3473:5;3469:16;3434:76;:::i;:::-;3564:2;3543:15;-1:-1:-1;;3539:29:76;3530:39;;;;3571:4;3526:50;;3311:271;-1:-1:-1;;3311:271:76:o;3587:623::-;3895:1;3891;3886:3;3882:11;3878:19;3870:6;3866:32;3855:9;3848:51;3935:6;3930:2;3919:9;3915:18;3908:34;3978:3;3973:2;3962:9;3958:18;3951:31;3829:4;4005:46;4046:3;4035:9;4031:19;4023:6;4005:46;:::i;:::-;4099:9;4091:6;4087:22;4082:2;4071:9;4067:18;4060:50;4127:33;4153:6;4145;4127:33;:::i;:::-;4119:41;;;4197:6;4191:3;4180:9;4176:19;4169:35;3587:623;;;;;;;;:::o;4215:222::-;4280:9;;;4301:10;;;4298:133;;;4353:10;4348:3;4344:20;4341:1;4334:31;4388:4;4385:1;4378:15;4416:4;4413:1;4406:15;4298:133;4215:222;;;;:::o;4442:695::-;4749:6;4738:9;4731:25;4821:1;4817;4812:3;4808:11;4804:19;4796:6;4792:32;4787:2;4776:9;4772:18;4765:60;4861:6;4856:2;4845:9;4841:18;4834:34;4904:3;4899:2;4888:9;4884:18;4877:31;4712:4;4931:46;4972:3;4961:9;4957:19;4949:6;4931:46;:::i;:::-;5026:9;5018:6;5014:22;5008:3;4997:9;4993:19;4986:51;5054:33;5080:6;5072;5054:33;:::i;:::-;5046:41;;;5124:6;5118:3;5107:9;5103:19;5096:35;4442:695;;;;;;;;;:::o;5648:384::-;-1:-1:-1;;;;;;5833:33:76;;5821:46;;5890:13;;5803:3;;5912:74;5890:13;5975:1;5966:11;;5959:4;5947:17;;5912:74;:::i;:::-;6006:16;;;;6024:1;6002:24;;5648:384;-1:-1:-1;;;5648:384:76:o;6037:287::-;6166:3;6204:6;6198:13;6220:66;6279:6;6274:3;6267:4;6259:6;6255:17;6220:66;:::i;:::-;6302:16;;;;;6037:287;-1:-1:-1;;6037:287:76:o;6329:289::-;6504:6;6493:9;6486:25;6547:2;6542;6531:9;6527:18;6520:30;6467:4;6567:45;6608:2;6597:9;6593:18;6585:6;6567:45;:::i;:::-;6559:53;6329:289;-1:-1:-1;;;;6329:289:76:o","linkReferences":{}},"methodIdentifiers":{"cancelAction(address,uint256,string,bytes,uint256)":"313c7d5b","delay()":"6a42b8f8","executeAction(address,uint256,string,bytes,uint256)":"654f5c4e","isActionLoaded(address,uint256,string,bytes,uint256)":"51ff2b74","loadAction(address,uint256,string,bytes)":"007bcf66","loadedActions(bytes32)":"6e8c7ab9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ActionExecutionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"}],\"name\":\"ActionNotLoaded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"readyTime\",\"type\":\"uint256\"}],\"name\":\"ActionNotReady\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"trxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"ActionLoaded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"cancelAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"executeAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"ready\",\"type\":\"uint256\"}],\"name\":\"isActionLoaded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"sig\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"loadAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"loadedActions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ActionExecutionFailed(bytes32,bytes)\":[{\"details\":\"throws if an action failed during execution\",\"params\":{\"returnData\":\"data returned from call\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotLoaded(bytes32)\":[{\"details\":\"throws if an action has not been loaded when attempting to execute\",\"params\":{\"trxHash\":\"hash of target + value + sig + data + ready\"}}],\"ActionNotReady(bytes32,uint256,uint256)\":[{\"details\":\"throws if an action is not ready when attempting to execute\",\"params\":{\"currentTime\":\"block timestamp during execution\",\"readyTime\":\"timestamp when action is ready\",\"trxHash\":\"hash of target + value + sig + data + ready\"}}]},\"events\":{\"ActionCancelled(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being cancelled and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionExecuted(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being executed and removed from hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}},\"ActionLoaded(bytes32,address,uint256,string,bytes,uint256)\":{\"details\":\"logs an action being loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"trxHash\":\"hash of target + value + sig + data + ready\",\"value\":\"amount of value to send when executed\"}}},\"kind\":\"dev\",\"methods\":{\"isActionLoaded(address,uint256,string,bytes,uint256)\":{\"details\":\"returns true if action has been loaded into hopper\",\"params\":{\"data\":\"additional data to send\",\"ready\":\"unix time point when action can be executed\",\"sig\":\"signature data\",\"target\":\"address of target contract\",\"value\":\"amount of value to send\"}}},\"title\":\"Stub Action Hopper Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubActionHopper.sol\":\"StubActionHopper\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/abstract/ActionHopper.sol\":{\"keccak256\":\"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73\",\"dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7\"]},\"src/abstract/stub/StubActionHopper.sol\":{\"keccak256\":\"0x91debf9dd2ea08d79fec7cc8c43e91953b2e3ed50a96fcb482bc4dceab8f41e9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ba28cb2038b11f20dfcf8646a20491ed965551031f7cdaffffd1d43e089367c2\",\"dweb:/ipfs/QmSSuCif7vd1V1dUXTndw4cZVrWYiHaYAy3kevJn1ZpJW9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"ActionExecutionFailed"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"}],"type":"error","name":"ActionNotLoaded"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32"},{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"readyTime","type":"uint256"}],"type":"error","name":"ActionNotReady"},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionCancelled","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionExecuted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"trxHash","type":"bytes32","indexed":false},{"internalType":"address","name":"target","type":"address","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"sig","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"ready","type":"uint256","indexed":false}],"type":"event","name":"ActionLoaded","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"executeAction"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"ready","type":"uint256"}],"stateMutability":"view","type":"function","name":"isActionLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"sig","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"loadAction"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"loadedActions","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"isActionLoaded(address,uint256,string,bytes,uint256)":{"details":"returns true if action has been loaded into hopper","params":{"data":"additional data to send","ready":"unix time point when action can be executed","sig":"signature data","target":"address of target contract","value":"amount of value to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubActionHopper.sol":"StubActionHopper"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/ActionHopper.sol":{"keccak256":"0xed2daaeaac0492675eda362c452ed411907787071bfd1893f2b1fbea201321d7","urls":["bzz-raw://252a746c8bd5b7329630577c0d101f44afde1757297a497236f5919f359f7b73","dweb:/ipfs/QmRC3RsZRyFGg3Mx8z4a9yRqKHaHmheedAJQU2ui36QDZ7"],"license":"UNLICENSED"},"src/abstract/stub/StubActionHopper.sol":{"keccak256":"0x91debf9dd2ea08d79fec7cc8c43e91953b2e3ed50a96fcb482bc4dceab8f41e9","urls":["bzz-raw://ba28cb2038b11f20dfcf8646a20491ed965551031f7cdaffffd1d43e089367c2","dweb:/ipfs/QmSSuCif7vd1V1dUXTndw4cZVrWYiHaYAy3kevJn1ZpJW9"],"license":"UNLICENSED"}},"version":1},"id":52} \ No newline at end of file diff --git a/out/StubERC721Receivable.sol/StubERC721Receivable.json b/out/StubERC721Receivable.sol/StubERC721Receivable.json deleted file mode 100644 index dc2ee71..0000000 --- a/out/StubERC721Receivable.sol/StubERC721Receivable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"sendERC721","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"erc721Contract","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ERC721Received","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ERC721Sent","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"erc721Contract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506102d28061001d5f395ff3fe60806040526004361061002b575f3560e01c8063150b7a02146100365780633fcf9b0c14610072575f80fd5b3661003257005b5f80fd5b348015610041575f80fd5b506100556100503660046101d0565b610093565b6040516001600160e01b0319909116815260200160405180910390f35b34801561007d575f80fd5b5061009161008c366004610263565b6100f2565b005b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6100fd838383610102565b505050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490528216906342842e0e906064015f604051808303815f87803b15801561014f575f80fd5b505af1158015610161573d5f803e3d5ffd5b5050604080516001600160a01b0387811682526020820187905285168183015290517fe766171301ed524b0850d38c1eeced46e559aeccfbfd994fc19bbb80ac8b18819350908190036060019150a1505050565b80356001600160a01b03811681146101cb575f80fd5b919050565b5f805f805f608086880312156101e4575f80fd5b6101ed866101b5565b94506101fb602087016101b5565b935060408601359250606086013567ffffffffffffffff8082111561021e575f80fd5b818801915088601f830112610231575f80fd5b81358181111561023f575f80fd5b896020828501011115610250575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610275575f80fd5b61027e846101b5565b925060208401359150610293604085016101b5565b9050925092509256fea26469706673582212201f130ddcacd779e81f49defd7cd2569411be4c6b36ddca3794a837405c2ea8cf64736f6c63430008140033","sourceMap":"171:258:53:-:0;;;232:16;;;;;;;;;;171:258;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002b575f3560e01c8063150b7a02146100365780633fcf9b0c14610072575f80fd5b3661003257005b5f80fd5b348015610041575f80fd5b506100556100503660046101d0565b610093565b6040516001600160e01b0319909116815260200160405180910390f35b34801561007d575f80fd5b5061009161008c366004610263565b6100f2565b005b604080516001600160a01b0387811682526020820186905286168183015290515f917f53f9fb1a779fe0d4eee06280249fc20441cca6949207450cad7c5ef85de6ce23919081900360600190a150630a85bd0160e11b95945050505050565b6100fd838383610102565b505050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490528216906342842e0e906064015f604051808303815f87803b15801561014f575f80fd5b505af1158015610161573d5f803e3d5ffd5b5050604080516001600160a01b0387811682526020820187905285168183015290517fe766171301ed524b0850d38c1eeced46e559aeccfbfd994fc19bbb80ac8b18819350908190036060019150a1505050565b80356001600160a01b03811681146101cb575f80fd5b919050565b5f805f805f608086880312156101e4575f80fd5b6101ed866101b5565b94506101fb602087016101b5565b935060408601359250606086013567ffffffffffffffff8082111561021e575f80fd5b818801915088601f830112610231575f80fd5b81358181111561023f575f80fd5b896020828501011115610250575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215610275575f80fd5b61027e846101b5565b925060208401359150610293604085016101b5565b9050925092509256fea26469706673582212201f130ddcacd779e81f49defd7cd2569411be4c6b36ddca3794a837405c2ea8cf64736f6c63430008140033","sourceMap":"171:258:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:476:50;;;;;;;;;;-1:-1:-1;1177:476:50;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;1167:33:76;;;1149:52;;1137:2;1122:18;1177:476:50;;;;;;;254:137:53;;;;;;;;;;-1:-1:-1;254:137:53;;;;;:::i;:::-;;:::i;:::-;;1177:476:50;1549:39;;;-1:-1:-1;;;;;1803:15:76;;;1785:34;;1850:2;1835:18;;1828:34;;;1898:15;;1878:18;;;1871:43;1549:39:50;;-1:-1:-1;;1549:39:50;;;;;;1735:2:76;1549:39:50;;;-1:-1:-1;;;;1177:476:50;;;;;;;:::o;254:137:53:-;344:40;356:2;360:7;369:14;344:11;:40::i;:::-;254:137;;;:::o;1659:370:50:-;1900:68;;-1:-1:-1;;;1900:68:50;;1949:4;1900:68;;;2165:34:76;-1:-1:-1;;;;;2235:15:76;;;2215:18;;;2208:43;2267:18;;;2260:34;;;1900:40:50;;;;;2100:18:76;;1900:68:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1983:39:50;;;-1:-1:-1;;;;;1803:15:76;;;1785:34;;1850:2;1835:18;;1828:34;;;1898:15;;1878:18;;;1871:43;1983:39:50;;;;-1:-1:-1;1983:39:50;;;;1735:2:76;1983:39:50;;-1:-1:-1;1983:39:50;1659:370;;;:::o;14:173:76:-;82:20;;-1:-1:-1;;;;;131:31:76;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:808::-;289:6;297;305;313;321;374:3;362:9;353:7;349:23;345:33;342:53;;;391:1;388;381:12;342:53;414:29;433:9;414:29;:::i;:::-;404:39;;462:38;496:2;485:9;481:18;462:38;:::i;:::-;452:48;;547:2;536:9;532:18;519:32;509:42;;602:2;591:9;587:18;574:32;625:18;666:2;658:6;655:14;652:34;;;682:1;679;672:12;652:34;720:6;709:9;705:22;695:32;;765:7;758:4;754:2;750:13;746:27;736:55;;787:1;784;777:12;736:55;827:2;814:16;853:2;845:6;842:14;839:34;;;869:1;866;859:12;839:34;914:7;909:2;900:6;896:2;892:15;888:24;885:37;882:57;;;935:1;932;925:12;882:57;192:808;;;;-1:-1:-1;192:808:76;;-1:-1:-1;966:2:76;958:11;;988:6;192:808;-1:-1:-1;;;192:808:76:o;1212:328::-;1289:6;1297;1305;1358:2;1346:9;1337:7;1333:23;1329:32;1326:52;;;1374:1;1371;1364:12;1326:52;1397:29;1416:9;1397:29;:::i;:::-;1387:39;;1473:2;1462:9;1458:18;1445:32;1435:42;;1496:38;1530:2;1519:9;1515:18;1496:38;:::i;:::-;1486:48;;1212:328;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02","sendERC721(address,uint256,address)":"3fcf9b0c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"ERC721Sent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc721Contract\",\"type\":\"address\"}],\"name\":\"sendERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"Stub ERC721Receivable Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubERC721Receivable.sol\":\"StubERC721Receivable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/abstract/ERC721Receivable.sol\":{\"keccak256\":\"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6\",\"dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY\"]},\"src/abstract/stub/StubERC721Receivable.sol\":{\"keccak256\":\"0x2f219603da703836bd38d83886260628e081cdec33878a4a0c0f03b08c7105f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6b2c6a5788c9513899398233997b3b31f06b86732249a8b8ed1dbeb638c06ff3\",\"dweb:/ipfs/QmYv2jTpdUd7on6a6GSHvb2riPFmA14Ep6FwhKFoZGpmdz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Received","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"address","name":"erc721Contract","type":"address","indexed":false}],"type":"event","name":"ERC721Sent","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc721Contract","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"sendERC721"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubERC721Receivable.sol":"StubERC721Receivable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d","urls":["bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34","dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/abstract/ERC721Receivable.sol":{"keccak256":"0xe68d2088c768d0b0db25c7604e9021e3936130af634cf88fb25b0910b42e78a5","urls":["bzz-raw://530335d7e95360b829eb88c35770d3c4301ae94ab650d4120e80381f84e701a6","dweb:/ipfs/QmWZekxoPXtZN888MvETzUpY5KtGiLrC1KEUeNZz2kLkjY"],"license":"UNLICENSED"},"src/abstract/stub/StubERC721Receivable.sol":{"keccak256":"0x2f219603da703836bd38d83886260628e081cdec33878a4a0c0f03b08c7105f4","urls":["bzz-raw://6b2c6a5788c9513899398233997b3b31f06b86732249a8b8ed1dbeb638c06ff3","dweb:/ipfs/QmYv2jTpdUd7on6a6GSHvb2riPFmA14Ep6FwhKFoZGpmdz"],"license":"UNLICENSED"}},"version":1},"id":53} \ No newline at end of file diff --git a/out/StubOGREFactory.sol/StubOGREFactory.json b/out/StubOGREFactory.sol/StubOGREFactory.json deleted file mode 100644 index d3f5578..0000000 --- a/out/StubOGREFactory.sol/StubOGREFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"produceContract","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"producer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"productionCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ContractProduced","inputs":[{"name":"contractAddress","type":"address","indexed":false,"internalType":"address"},{"name":"producedBy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101218061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460bf565b605e565b005b604080516001600160a01b038085168252831660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a15050565b80356001600160a01b038116811460ba575f80fd5b919050565b5f806040838503121560cf575f80fd5b60d68360a5565b915060e26020840160a5565b9050925092905056fea26469706673582212204808d36bdb751f3bb29ab86eb8fb26bcb1d9db0e1da5d36a0fd7622168e57d3464736f6c63430008140033","sourceMap":"161:216:17:-:0;;;212:16;;;;;;;;;;161:216;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806317350165146034578063b0a3208414604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c605836600460bf565b605e565b005b604080516001600160a01b038085168252831660208201527f4057d2a24b30c1665ec78555af458dbb1824f5032f221ae425871d96453e26ba910160405180910390a15050565b80356001600160a01b038116811460ba575f80fd5b919050565b5f806040838503121560cf575f80fd5b60d68360a5565b915060e26020840160a5565b9050925092905056fea26469706673582212204808d36bdb751f3bb29ab86eb8fb26bcb1d9db0e1da5d36a0fd7622168e57d3464736f6c63430008140033","sourceMap":"161:216:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;151:30:16;;;;;;;;;160:25:30;;;148:2;133:18;151:30:16;;;;;;;234:140:17;;;;;;:::i;:::-;;:::i;:::-;;;324:43;;;-1:-1:-1;;;;;869:15:30;;;851:34;;921:15;;916:2;901:18;;894:43;324::17;;786:18:30;324:43:17;;;;;;;234:140;;:::o;196:173:30:-;264:20;;-1:-1:-1;;;;;313:31:30;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:260::-;442:6;450;503:2;491:9;482:7;478:23;474:32;471:52;;;519:1;516;509:12;471:52;542:29;561:9;542:29;:::i;:::-;532:39;;590:38;624:2;613:9;609:18;590:38;:::i;:::-;580:48;;374:260;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"produceContract(address,address)":"b0a32084","productionCount()":"17350165"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"producedBy\",\"type\":\"address\"}],\"name\":\"ContractProduced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"producer\",\"type\":\"address\"}],\"name\":\"produceContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"productionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ContractProduced(address,address)\":{\"details\":\"Logs a successful contract production.\",\"params\":{\"contractAddress\":\"address of newly produced contract\",\"producedBy\":\"address that initiated production\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Stub OGREFactory Contract used in unit testing.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/abstract/stub/StubOGREFactory.sol\":\"StubOGREFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solady/=lib/solady/src/\"]},\"sources\":{\"src/abstract/OGREFactory.sol\":{\"keccak256\":\"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535\",\"dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1\"]},\"src/abstract/stub/StubOGREFactory.sol\":{\"keccak256\":\"0x00ec6b6fc056b7a4bd6d61020ea458921bf0c1feeca765ea76b39b93734f3d40\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3949c04c47e1cf1ebb09dbc9b21d3293538883c50db7aa16a7f403a541068417\",\"dweb:/ipfs/QmbGmS9XsnEUcGvsZMBPMjm2BTqR4vwrGnTifJSPNMjcVX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address","indexed":false},{"internalType":"address","name":"producedBy","type":"address","indexed":false}],"type":"event","name":"ContractProduced","anonymous":false},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"address","name":"producer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"produceContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"productionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/abstract/stub/StubOGREFactory.sol":"StubOGREFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/abstract/OGREFactory.sol":{"keccak256":"0x7481de301729b3b77e520f43d4ed6bc9ad6721bdf535a56ba35d2b58fb5ba75d","urls":["bzz-raw://1698e0d9e1093dc88bfe65f1364497ec9ee1d71bc2a25c8b8ea8dcad47798535","dweb:/ipfs/QmUbfBTjBoJWsqE94WkAzzEBSUk6EQwnpJmJoiC7WA6XN1"],"license":"UNLICENSED"},"src/abstract/stub/StubOGREFactory.sol":{"keccak256":"0x00ec6b6fc056b7a4bd6d61020ea458921bf0c1feeca765ea76b39b93734f3d40","urls":["bzz-raw://3949c04c47e1cf1ebb09dbc9b21d3293538883c50db7aa16a7f403a541068417","dweb:/ipfs/QmbGmS9XsnEUcGvsZMBPMjm2BTqR4vwrGnTifJSPNMjcVX"],"license":"UNLICENSED"}},"version":1},"id":17} \ No newline at end of file diff --git a/out/Test.sol/Test.json b/out/Test.sol/Test.json deleted file mode 100644 index 8c36f6d..0000000 --- a/out/Test.sol/Test.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1\",\"dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":"Test"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0xcd3e64ec9ffa19a2c0715bbdaf7ddf28887cc418e079bec4373fd6a3f9961a7b","urls":["bzz-raw://e981a2ab738590928e9efa5f3d95a408c718eb12d73a113d7675f3ed55a026a1","dweb:/ipfs/QmTgSEkWWsBRy32goRCaUkraSgpZHtgbZoKC3iEFNz5RDc"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/out/Vm.sol/Vm.json b/out/Vm.sol/Vm.json deleted file mode 100644 index a78a958..0000000 --- a/out/Vm.sol/Vm.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialReverts","type":"tuple[]","internalType":"struct VmSafe.PotentialRevert[]","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialRevert","type":"tuple","internalType":"struct VmSafe.PotentialRevert","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"attachDelegation","inputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobBaseFee","inputs":[{"name":"newBlobBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobhashes","inputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcastRawTransaction","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cloneAccount","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"contains","inputs":[{"name":"subject","type":"string","internalType":"string"},{"name":"search","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyStorage","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteStateSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteStateSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"},{"name":"constructorArgs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"checkTopic0","type":"bool","internalType":"bool"},{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmitAnonymous","inputs":[{"name":"checkTopic0","type":"bool","internalType":"bool"},{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectPartialRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectPartialRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"},{"name":"reverter","type":"address","internalType":"address"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"reverter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByCode","inputs":[{"name":"code","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByDeployedCode","inputs":[{"name":"deployedCode","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlobhashes","inputs":[],"outputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBroadcast","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple","internalType":"struct VmSafe.BroadcastTxSummary","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployments","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddresses","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getFoundryVersion","inputs":[],"outputs":[{"name":"version","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getStateDiff","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStateDiffJson","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[],"outputs":[{"name":"wallets","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes4","internalType":"bytes4"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCalls","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCalls","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockFunction","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonTypeArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlTypeArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"publicKeyP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomBool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"randomBytes","inputs":[{"name":"len","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"randomBytes4","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"randomBytes8","inputs":[],"outputs":[{"name":"","type":"bytes8","internalType":"bytes8"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"language","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToState","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToStateAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setArbitraryStorage","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBlockhash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signAndAttachDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotGasLastCall","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotGasLastCall","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotState","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotValue","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshotValue","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startDebugTraceRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"},{"name":"delegateCall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startSnapshotGas","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startSnapshotGas","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnDebugTraceRecording","inputs":[],"outputs":[{"name":"step","type":"tuple[]","internalType":"struct VmSafe.DebugStep[]","components":[{"name":"stack","type":"uint256[]","internalType":"uint256[]"},{"name":"memoryInput","type":"bytes","internalType":"bytes"},{"name":"opcode","type":"uint8","internalType":"uint8"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isOutOfGas","type":"bool","internalType":"bool"},{"name":"contractAddr","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopExpectSafeMemory","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[{"name":"group","type":"string","internalType":"string"},{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stopSnapshotGas","inputs":[],"outputs":[{"name":"gasUsed","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","assumeNoRevert((address,bool,bytes))":"d8591eeb","assumeNoRevert((address,bool,bytes)[])":"8a4592cc","assumeNoRevert()":"285b366a","attachDelegation((uint8,bytes32,bytes32,uint64,address))":"14ae3519","blobBaseFee(uint256)":"6d315d7e","blobhashes(bytes32[])":"129de7eb","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","cloneAccount(address,address)":"533d61c9","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","contains(string,string)":"3fb18aec","copyFile(string,string)":"a54a87d8","copyStorage(address,address)":"203dac0d","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deleteStateSnapshot(uint256)":"08d6b37a","deleteStateSnapshots()":"e0933c74","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(address,uint64)":"b43aece3","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectEmit(bool,bool,bool,bool,address,uint64)":"c339d02c","expectEmit(bool,bool,bool,bool,uint64)":"5e1d1c33","expectEmit(uint64)":"4c74a335","expectEmitAnonymous()":"2e5f270c","expectEmitAnonymous(address)":"6fc68705","expectEmitAnonymous(bool,bool,bool,bool,bool)":"c948db5e","expectEmitAnonymous(bool,bool,bool,bool,bool,address)":"71c95899","expectPartialRevert(bytes4)":"11fb5b9c","expectPartialRevert(bytes4,address)":"51aa008a","expectRevert()":"f4844814","expectRevert(address)":"d814f38a","expectRevert(address,uint64)":"1ff5f952","expectRevert(bytes)":"f28dceb3","expectRevert(bytes,address)":"61ebcf12","expectRevert(bytes,address,uint64)":"d345fb1f","expectRevert(bytes,uint64)":"4994c273","expectRevert(bytes4)":"c31eb0e0","expectRevert(bytes4,address)":"260bc5de","expectRevert(bytes4,address,uint64)":"b0762d73","expectRevert(bytes4,uint64)":"e45ca72d","expectRevert(uint64)":"4ee38244","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getArtifactPathByCode(bytes)":"eb74848c","getArtifactPathByDeployedCode(bytes)":"6d853ba5","getBlobBaseFee()":"1f6d6ef7","getBlobhashes()":"f56ff18b","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getBroadcast(string,uint64,uint8)":"3dc90cb3","getBroadcasts(string,uint64)":"f2fa4a26","getBroadcasts(string,uint64,uint8)":"f7afe919","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getDeployment(string)":"a8091d97","getDeployment(string,uint64)":"0debd5d6","getDeployments(string,uint64)":"74e133dd","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","getStateDiff()":"80df01cc","getStateDiffJson()":"f54fe009","getWallets()":"db7a4605","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,bytes4,bytes)":"08e0c537","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCall(address,uint256,bytes4,bytes)":"e7b36a3d","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,bytes4,bytes)":"2dfba5df","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","mockCallRevert(address,uint256,bytes4,bytes)":"596c8f04","mockCalls(address,bytes,bytes[])":"5c5c3de9","mockCalls(address,uint256,bytes,bytes[])":"08bcbae1","mockFunction(address,address,bytes)":"adf84d21","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlType(string,string)":"47fa5e11","parseTomlType(string,string,string)":"f9fa5cdb","parseTomlTypeArray(string,string,string)":"49be3743","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","pauseTracing()":"c94d1f90","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prank(address,address,bool)":"7d73d042","prank(address,bool)":"a7f8bf5c","prevrandao(bytes32)":"3b925549","prevrandao(uint256)":"9cb1c0d4","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","publicKeyP256(uint256)":"c453949e","randomAddress()":"d5bee9f5","randomBool()":"cdc126bd","randomBytes(uint256)":"6c5d32a9","randomBytes4()":"9b7cd579","randomBytes8()":"0497b0a5","randomInt()":"111f1202","randomInt(uint256)":"12845966","randomUint()":"25124730","randomUint(uint256)":"cf81e69c","randomUint(uint256,uint256)":"d61b051b","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","rememberKeys(string,string,string,uint32)":"f8d58eaf","rememberKeys(string,string,uint32)":"97cb9189","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetGasMetering()":"be367dd3","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","resumeTracing()":"72a09ccb","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revertToState(uint256)":"c2527405","revertToStateAndDelete(uint256)":"3a1985dc","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setArbitraryStorage(address)":"e1631837","setBlockhash(uint256,bytes32)":"5314b54a","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signAndAttachDelegation(address,uint256)":"c7fa7288","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signDelegation(address,uint256)":"5b593c7b","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","skip(bool,string)":"c42a80a7","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","snapshotGasLastCall(string)":"dd9fca12","snapshotGasLastCall(string,string)":"200c6772","snapshotState()":"9cd23835","snapshotValue(string,string,uint256)":"6d2b27d8","snapshotValue(string,uint256)":"51db805a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startDebugTraceRecording()":"419c8832","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startPrank(address,address,bool)":"4eb859b5","startPrank(address,bool)":"1cc0b435","startSnapshotGas(string)":"3cad9d7b","startSnapshotGas(string,string)":"6cd0cc53","startStateDiffRecording()":"cf22e3c9","stopAndReturnDebugTraceRecording()":"ced398a2","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","stopSnapshotGas()":"f6402eda","stopSnapshotGas(string)":"773b2805","stopSnapshotGas(string,string)":"0c9db707","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert[]\",\"name\":\"potentialReverts\",\"type\":\"tuple[]\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert\",\"name\":\"potentialRevert\",\"type\":\"tuple\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"name\":\"attachDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBlobBaseFee\",\"type\":\"uint256\"}],\"name\":\"blobBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"name\":\"blobhashes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"cloneAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subject\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"search\",\"type\":\"string\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"copyStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteStateSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteStateSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic0\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmitAnonymous\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectPartialRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectPartialRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"code\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByDeployedCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobhashes\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcast\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployments\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"deployedAddresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiff\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiffJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"wallets\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"data\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"name\":\"mockCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"name\":\"mockCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mockFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrevrandao\",\"type\":\"uint256\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"publicKeyP256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"len\",\"type\":\"uint256\"}],\"name\":\"randomBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes8\",\"outputs\":[{\"internalType\":\"bytes8\",\"name\":\"\",\"type\":\"bytes8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resetGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToStateAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"setArbitraryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"setBlockhash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signAndAttachDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"snapshotGasLastCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"snapshotGasLastCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshotState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"snapshotValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"snapshotValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startDebugTraceRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"startSnapshotGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"startSnapshotGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnDebugTraceRecording\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"stack\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"memoryInput\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isOutOfGas\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractAddr\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.DebugStep[]\",\"name\":\"step\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"group\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopSnapshotGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"assumeNoRevert((address,bool,bytes))\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters.\"},\"assumeNoRevert((address,bool,bytes)[])\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters.\"},\"assumeNoRevert()\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverted.\"},\"attachDelegation((uint8,bytes32,bytes32,uint64,address))\":{\"notice\":\"Designate the next call as an EIP-7702 transaction\"},\"blobBaseFee(uint256)\":{\"notice\":\"Sets `block.blobbasefee`\"},\"blobhashes(bytes32[])\":{\"notice\":\"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"cloneAccount(address,address)\":{\"notice\":\"Clones a source account code, state, balance and nonce to a target account and updates in-memory EVM state.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"contains(string,string)\":{\"notice\":\"Returns true if `search` is found in `subject`, false otherwise.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"copyStorage(address,address)\":{\"notice\":\"Utility cheatcode to copy storage of `from` contract to another `to` contract.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"`deleteSnapshot` is being deprecated in favor of `deleteStateSnapshot`. It will be removed in future versions.\"},\"deleteSnapshots()\":{\"notice\":\"`deleteSnapshots` is being deprecated in favor of `deleteStateSnapshots`. It will be removed in future versions.\"},\"deleteStateSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteStateSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(address,uint64)\":{\"notice\":\"Expect a given number of logs from a specific emitter with all topic and data checks enabled.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool,address,uint64)\":{\"notice\":\"Expect a given number of logs from a specific emitter with the provided topics.\"},\"expectEmit(bool,bool,bool,bool,uint64)\":{\"notice\":\"Expect a given number of logs with the provided topics.\"},\"expectEmit(uint64)\":{\"notice\":\"Expect a given number of logs with all topic and data checks enabled.\"},\"expectEmitAnonymous()\":{\"notice\":\"Prepare an expected anonymous log with all topic and data checks enabled. Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmitAnonymous(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmitAnonymous(bool,bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectPartialRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectPartialRevert(bytes4,address)\":{\"notice\":\"Expects an error on next call to reverter address, that starts with the revert data.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(address)\":{\"notice\":\"Expects an error with any revert data on next call to reverter address.\"},\"expectRevert(address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes,address)\":{\"notice\":\"Expects an error from reverter address on next call, that exactly matches the revert data.\"},\"expectRevert(bytes,address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address that exactly match the revert data.\"},\"expectRevert(bytes,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls that exactly match the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4,address)\":{\"notice\":\"Expects an error from reverter address on next call, with any revert data.\"},\"expectRevert(bytes4,address,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls from the reverter address that match the revert data.\"},\"expectRevert(bytes4,uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls that match the revert data.\"},\"expectRevert(uint64)\":{\"notice\":\"Expects a `count` number of reverts from the upcoming calls with any revert data or reverter.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getArtifactPathByCode(bytes)\":{\"notice\":\"Gets the artifact path from code (aka. creation code).\"},\"getArtifactPathByDeployedCode(bytes)\":{\"notice\":\"Gets the artifact path from deployed code (aka. runtime code).\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlobhashes()\":{\"notice\":\"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBroadcast(string,uint64,uint8)\":{\"notice\":\"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`.\"},\"getBroadcasts(string,uint64)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getBroadcasts(string,uint64,uint8)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployment(string)\":{\"notice\":\"Returns the most recent deployment for the current `chainId`.\"},\"getDeployment(string,uint64)\":{\"notice\":\"Returns the most recent deployment for the given contract on `chainId`\"},\"getDeployments(string,uint64)\":{\"notice\":\"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"getStateDiff()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session.\"},\"getStateDiffJson()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session, in json format.\"},\"getWallets()\":{\"notice\":\"Returns addresses of available unlocked wallets in the script environment.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call from the callee perspective.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory EVM state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,bytes4,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCall(address,uint256,bytes4,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,bytes4,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"mockCallRevert(address,uint256,bytes4,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`.\"},\"mockCalls(address,bytes,bytes[])\":{\"notice\":\"Mocks multiple calls to an address, returning specified data for each call.\"},\"mockCalls(address,uint256,bytes,bytes[])\":{\"notice\":\"Mocks multiple calls to an address with a specific `msg.value`, returning specified data for each call.\"},\"mockFunction(address,address,bytes)\":{\"notice\":\"Whenever a call is made to `callee` with calldata `data`, this cheatcode instead calls `target` with the same calldata. This functionality is similar to a delegate call made to `target` contract from `callee`. Can be used to substitute a call to a function with another implementation that captures the primary logic of the original function but is easier to reason about. If calldata is not a strict match then partial match by selector is attempted.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlType(string,string)\":{\"notice\":\"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlType(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlTypeArray(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"pauseTracing()\":{\"notice\":\"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prank(address,address,bool)\":{\"notice\":\"Sets the *next* delegate call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prank(address,bool)\":{\"notice\":\"Sets the *next* delegate call's `msg.sender` to be the input address.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"prevrandao(uint256)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"publicKeyP256(uint256)\":{\"notice\":\"Derives secp256r1 public key from the provided `privateKey`.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomBool()\":{\"notice\":\"Returns a random `bool`.\"},\"randomBytes(uint256)\":{\"notice\":\"Returns a random byte array value of the given length.\"},\"randomBytes4()\":{\"notice\":\"Returns a random fixed-size byte array of length 4.\"},\"randomBytes8()\":{\"notice\":\"Returns a random fixed-size byte array of length 8.\"},\"randomInt()\":{\"notice\":\"Returns a random `int256` value.\"},\"randomInt(uint256)\":{\"notice\":\"Returns a random `int256` value of given bits.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256)\":{\"notice\":\"Returns a random `uint256` value of given bits.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uint256 value between the provided range (=min..=max).\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"rememberKeys(string,string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"rememberKeys(string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetGasMetering()\":{\"notice\":\"Reset gas metering (i.e. gas usage is set to gas limit).\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"resumeTracing()\":{\"notice\":\"Unpauses collection of call traces.\"},\"revertTo(uint256)\":{\"notice\":\"`revertTo` is being deprecated in favor of `revertToState`. It will be removed in future versions.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"`revertToAndDelete` is being deprecated in favor of `revertToStateAndDelete`. It will be removed in future versions.\"},\"revertToState(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteStateSnapshot`.\"},\"revertToStateAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setArbitraryStorage(address)\":{\"notice\":\"Utility cheatcode to set arbitrary storage for given target address.\"},\"setBlockhash(uint256,bytes32)\":{\"notice\":\"Set blockhash for the current block. It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signAndAttachDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization for delegation\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top level of a test.\"},\"skip(bool,string)\":{\"notice\":\"Marks a test as skipped with a reason. Must be called at the top level of a test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"`snapshot` is being deprecated in favor of `snapshotState`. It will be removed in future versions.\"},\"snapshotGasLastCall(string)\":{\"notice\":\"Snapshot capture the gas usage of the last call by name from the callee perspective.\"},\"snapshotGasLastCall(string,string)\":{\"notice\":\"Snapshot capture the gas usage of the last call by name in a group from the callee perspective.\"},\"snapshotState()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertToState`.\"},\"snapshotValue(string,string,uint256)\":{\"notice\":\"Snapshot capture an arbitrary numerical value by name in a group.\"},\"snapshotValue(string,uint256)\":{\"notice\":\"Snapshot capture an arbitrary numerical value by name. The group name is derived from the contract name.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startDebugTraceRecording()\":{\"notice\":\"Records the debug trace during the run.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startPrank(address,address,bool)\":{\"notice\":\"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startPrank(address,bool)\":{\"notice\":\"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startSnapshotGas(string)\":{\"notice\":\"Start a snapshot capture of the current gas usage by name. The group name is derived from the contract name.\"},\"startSnapshotGas(string,string)\":{\"notice\":\"Start a snapshot capture of the current gas usage by name in a group.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnDebugTraceRecording()\":{\"notice\":\"Stop debug trace recording and returns the recorded debug trace.\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"stopSnapshotGas()\":{\"notice\":\"Stop the snapshot capture of the current gas by latest snapshot name, capturing the gas used since the start.\"},\"stopSnapshotGas(string)\":{\"notice\":\"Stop the snapshot capture of the current gas usage by name, capturing the gas used since the start. The group name is derived from the contract name.\"},\"stopSnapshotGas(string,string)\":{\"notice\":\"Stop the snapshot capture of the current gas usage by name in a group, capturing the gas used since the start.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert[]","name":"potentialReverts","type":"tuple[]","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert","name":"potentialRevert","type":"tuple","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"attachDelegation"},{"inputs":[{"internalType":"uint256","name":"newBlobBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"blobBaseFee"},{"inputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"blobhashes"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"broadcastRawTransaction"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"cloneAccount"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"subject","type":"string"},{"internalType":"string","name":"search","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"copyStorage"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteStateSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteStateSnapshots"},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bool","name":"checkTopic0","type":"bool"},{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmitAnonymous"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectPartialRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectPartialRevert"},{"inputs":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"},{"internalType":"address","name":"reverter","type":"address"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"address","name":"reverter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"deployedCode","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByDeployedCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobhashes","outputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcast","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployments","outputs":[{"internalType":"address[]","name":"deployedAddresses","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiff","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiffJson","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes4","name":"data","type":"bytes4"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mockCalls"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"mockCalls"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockFunction"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"pauseTracing"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[{"internalType":"uint256","name":"newPrevrandao","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"publicKeyP256","outputs":[{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"len","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes4","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes8","outputs":[{"internalType":"bytes8","name":"","type":"bytes8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"string","name":"language","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resetGasMetering"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"resumeTracing"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToState","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToStateAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setArbitraryStorage"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBlockhash"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signAndAttachDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"snapshotGasLastCall","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"snapshotGasLastCall","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshotState","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"snapshotValue"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"snapshotValue"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startDebugTraceRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"},{"internalType":"bool","name":"delegateCall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"startSnapshotGas"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"startSnapshotGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnDebugTraceRecording","outputs":[{"internalType":"struct VmSafe.DebugStep[]","name":"step","type":"tuple[]","components":[{"internalType":"uint256[]","name":"stack","type":"uint256[]"},{"internalType":"bytes","name":"memoryInput","type":"bytes"},{"internalType":"uint8","name":"opcode","type":"uint8"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isOutOfGas","type":"bool"},{"internalType":"address","name":"contractAddr","type":"address"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopExpectSafeMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"string","name":"group","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopSnapshotGas","outputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"view","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"assumeNoRevert((address,bool,bytes))":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters."},"assumeNoRevert((address,bool,bytes)[])":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters."},"assumeNoRevert()":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverted."},"attachDelegation((uint8,bytes32,bytes32,uint64,address))":{"notice":"Designate the next call as an EIP-7702 transaction"},"blobBaseFee(uint256)":{"notice":"Sets `block.blobbasefee`"},"blobhashes(bytes32[])":{"notice":"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"broadcastRawTransaction(bytes)":{"notice":"Takes a signed transaction and broadcasts it to the network."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"cloneAccount(address,address)":{"notice":"Clones a source account code, state, balance and nonce to a target account and updates in-memory EVM state."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"contains(string,string)":{"notice":"Returns true if `search` is found in `subject`, false otherwise."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"copyStorage(address,address)":{"notice":"Utility cheatcode to copy storage of `from` contract to another `to` contract."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"`deleteSnapshot` is being deprecated in favor of `deleteStateSnapshot`. It will be removed in future versions."},"deleteSnapshots()":{"notice":"`deleteSnapshots` is being deprecated in favor of `deleteStateSnapshots`. It will be removed in future versions."},"deleteStateSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteStateSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deployCode(string)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"deployCode(string,bytes)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(address,uint64)":{"notice":"Expect a given number of logs from a specific emitter with all topic and data checks enabled."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool,address,uint64)":{"notice":"Expect a given number of logs from a specific emitter with the provided topics."},"expectEmit(bool,bool,bool,bool,uint64)":{"notice":"Expect a given number of logs with the provided topics."},"expectEmit(uint64)":{"notice":"Expect a given number of logs with all topic and data checks enabled."},"expectEmitAnonymous()":{"notice":"Prepare an expected anonymous log with all topic and data checks enabled. Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmitAnonymous(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmitAnonymous(bool,bool,bool,bool,bool)":{"notice":"Prepare an expected anonymous log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an anonymous event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmitAnonymous(bool,bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectPartialRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectPartialRevert(bytes4,address)":{"notice":"Expects an error on next call to reverter address, that starts with the revert data."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(address)":{"notice":"Expects an error with any revert data on next call to reverter address."},"expectRevert(address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes,address)":{"notice":"Expects an error from reverter address on next call, that exactly matches the revert data."},"expectRevert(bytes,address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address that exactly match the revert data."},"expectRevert(bytes,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls that exactly match the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4,address)":{"notice":"Expects an error from reverter address on next call, with any revert data."},"expectRevert(bytes4,address,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls from the reverter address that match the revert data."},"expectRevert(bytes4,uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls that match the revert data."},"expectRevert(uint64)":{"notice":"Expects a `count` number of reverts from the upcoming calls with any revert data or reverter."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getArtifactPathByCode(bytes)":{"notice":"Gets the artifact path from code (aka. creation code)."},"getArtifactPathByDeployedCode(bytes)":{"notice":"Gets the artifact path from deployed code (aka. runtime code)."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlobhashes()":{"notice":"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBroadcast(string,uint64,uint8)":{"notice":"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`."},"getBroadcasts(string,uint64)":{"notice":"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getBroadcasts(string,uint64,uint8)":{"notice":"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployment(string)":{"notice":"Returns the most recent deployment for the current `chainId`."},"getDeployment(string,uint64)":{"notice":"Returns the most recent deployment for the given contract on `chainId`"},"getDeployments(string,uint64)":{"notice":"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last."},"getFoundryVersion()":{"notice":"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get the nonce of a `Wallet`."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"getStateDiff()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session."},"getStateDiffJson()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session, in json format."},"getWallets()":{"notice":"Returns addresses of available unlocked wallets in the script environment."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call from the callee perspective."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory EVM state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,bytes4,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCall(address,uint256,bytes4,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,bytes4,bytes)":{"notice":"Reverts a call to an address with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"mockCallRevert(address,uint256,bytes4,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data. Overload to pass the function selector directly `token.approve.selector` instead of `abi.encodeWithSelector(token.approve.selector)`."},"mockCalls(address,bytes,bytes[])":{"notice":"Mocks multiple calls to an address, returning specified data for each call."},"mockCalls(address,uint256,bytes,bytes[])":{"notice":"Mocks multiple calls to an address with a specific `msg.value`, returning specified data for each call."},"mockFunction(address,address,bytes)":{"notice":"Whenever a call is made to `callee` with calldata `data`, this cheatcode instead calls `target` with the same calldata. This functionality is similar to a delegate call made to `target` contract from `callee`. Can be used to substitute a call to a function with another implementation that captures the primary logic of the original function but is easier to reason about. If calldata is not a strict match then partial match by selector is attempted."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonType(string,string)":{"notice":"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."},"parseJsonType(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."},"parseJsonTypeArray(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlType(string,string)":{"notice":"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`."},"parseTomlType(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`."},"parseTomlTypeArray(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"pauseTracing()":{"notice":"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prank(address,address,bool)":{"notice":"Sets the *next* delegate call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prank(address,bool)":{"notice":"Sets the *next* delegate call's `msg.sender` to be the input address."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"prevrandao(uint256)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"publicKeyP256(uint256)":{"notice":"Derives secp256r1 public key from the provided `privateKey`."},"randomAddress()":{"notice":"Returns a random `address`."},"randomBool()":{"notice":"Returns a random `bool`."},"randomBytes(uint256)":{"notice":"Returns a random byte array value of the given length."},"randomBytes4()":{"notice":"Returns a random fixed-size byte array of length 4."},"randomBytes8()":{"notice":"Returns a random fixed-size byte array of length 8."},"randomInt()":{"notice":"Returns a random `int256` value."},"randomInt(uint256)":{"notice":"Returns a random `int256` value of given bits."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256)":{"notice":"Returns a random `uint256` value of given bits."},"randomUint(uint256,uint256)":{"notice":"Returns random uint256 value between the provided range (=min..=max)."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"rememberKeys(string,string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"rememberKeys(string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetGasMetering()":{"notice":"Reset gas metering (i.e. gas usage is set to gas limit)."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"resumeTracing()":{"notice":"Unpauses collection of call traces."},"revertTo(uint256)":{"notice":"`revertTo` is being deprecated in favor of `revertToState`. It will be removed in future versions."},"revertToAndDelete(uint256)":{"notice":"`revertToAndDelete` is being deprecated in favor of `revertToStateAndDelete`. It will be removed in future versions."},"revertToState(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteStateSnapshot`."},"revertToStateAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpc(string,string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the given endpoint."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeJsonType(string,bytes)":{"notice":"See `serializeJson`."},"serializeJsonType(string,string,string,bytes)":{"notice":"See `serializeJson`."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setArbitraryStorage(address)":{"notice":"Utility cheatcode to set arbitrary storage for given target address."},"setBlockhash(uint256,bytes32)":{"notice":"Set blockhash for the current block. It only sets the blockhash for blocks where `block.number - 256 <= number < block.number`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signAndAttachDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction"},"signCompact((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signCompact(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address."},"signCompact(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"signCompact(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization for delegation"},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top level of a test."},"skip(bool,string)":{"notice":"Marks a test as skipped with a reason. Must be called at the top level of a test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"`snapshot` is being deprecated in favor of `snapshotState`. It will be removed in future versions."},"snapshotGasLastCall(string)":{"notice":"Snapshot capture the gas usage of the last call by name from the callee perspective."},"snapshotGasLastCall(string,string)":{"notice":"Snapshot capture the gas usage of the last call by name in a group from the callee perspective."},"snapshotState()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertToState`."},"snapshotValue(string,string,uint256)":{"notice":"Snapshot capture an arbitrary numerical value by name in a group."},"snapshotValue(string,uint256)":{"notice":"Snapshot capture an arbitrary numerical value by name. The group name is derived from the contract name."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startDebugTraceRecording()":{"notice":"Records the debug trace during the run."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startPrank(address,address,bool)":{"notice":"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startPrank(address,bool)":{"notice":"Sets all subsequent delegate calls' `msg.sender` to be the input address until `stopPrank` is called."},"startSnapshotGas(string)":{"notice":"Start a snapshot capture of the current gas usage by name. The group name is derived from the contract name."},"startSnapshotGas(string,string)":{"notice":"Start a snapshot capture of the current gas usage by name in a group."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnDebugTraceRecording()":{"notice":"Stop debug trace recording and returns the recorded debug trace."},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopExpectSafeMemory()":{"notice":"Stops all safe memory expectation in the current subcontext."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"stopSnapshotGas()":{"notice":"Stop the snapshot capture of the current gas by latest snapshot name, capturing the gas used since the start."},"stopSnapshotGas(string)":{"notice":"Stop the snapshot capture of the current gas usage by name, capturing the gas used since the start. The group name is derived from the contract name."},"stopSnapshotGas(string,string)":{"notice":"Stop the snapshot capture of the current gas usage by name in a group, capturing the gas used since the start."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35} \ No newline at end of file diff --git a/out/Vm.sol/VmSafe.json b/out/Vm.sol/VmSafe.json deleted file mode 100644 index 31ee611..0000000 --- a/out/Vm.sol/VmSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialReverts","type":"tuple[]","internalType":"struct VmSafe.PotentialRevert[]","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assumeNoRevert","inputs":[{"name":"potentialRevert","type":"tuple","internalType":"struct VmSafe.PotentialRevert","components":[{"name":"reverter","type":"address","internalType":"address"},{"name":"partialMatch","type":"bool","internalType":"bool"},{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"attachDelegation","inputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcastRawTransaction","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"contains","inputs":[{"name":"subject","type":"string","internalType":"string"},{"name":"search","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"copyStorage","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"},{"name":"constructorArgs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"ensNamehash","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByCode","inputs":[{"name":"code","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getArtifactPathByDeployedCode","inputs":[{"name":"deployedCode","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBroadcast","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple","internalType":"struct VmSafe.BroadcastTxSummary","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBroadcasts","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct VmSafe.BroadcastTxSummary[]","components":[{"name":"txHash","type":"bytes32","internalType":"bytes32"},{"name":"txType","type":"uint8","internalType":"enum VmSafe.BroadcastTxType"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"success","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployment","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"deployedAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDeployments","inputs":[{"name":"contractName","type":"string","internalType":"string"},{"name":"chainId","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"deployedAddresses","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getFoundryVersion","inputs":[],"outputs":[{"name":"version","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getStateDiff","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStateDiffJson","inputs":[],"outputs":[{"name":"diff","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getWallets","inputs":[],"outputs":[{"name":"wallets","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonType","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonTypeArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlType","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlTypeArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecretUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"publicKeyP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomBool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"randomBytes","inputs":[{"name":"len","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"randomBytes4","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"randomBytes8","inputs":[],"outputs":[{"name":"","type":"bytes8","internalType":"bytes8"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomInt","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomUint","inputs":[{"name":"bits","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"randomUint","inputs":[{"name":"min","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKeys","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"language","type":"string","internalType":"string"},{"name":"count","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"keyAddrs","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeTracing","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"rpc","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"serializeJsonType","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"typeDescription","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUintToHex","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setArbitraryStorage","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signAndAttachDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"signCompact","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signCompact","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"vs","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signDelegation","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"signedDelegation","type":"tuple","internalType":"struct VmSafe.SignedDelegation","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"implementation","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startDebugTraceRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnDebugTraceRecording","inputs":[],"outputs":[{"name":"step","type":"tuple[]","internalType":"struct VmSafe.DebugStep[]","components":[{"name":"stack","type":"uint256[]","internalType":"uint256[]"},{"name":"memoryInput","type":"bytes","internalType":"bytes"},{"name":"opcode","type":"uint8","internalType":"uint8"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isOutOfGas","type":"bool","internalType":"bool"},{"name":"contractAddr","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","assumeNoRevert((address,bool,bytes))":"d8591eeb","assumeNoRevert((address,bool,bytes)[])":"8a4592cc","assumeNoRevert()":"285b366a","attachDelegation((uint8,bytes32,bytes32,uint64,address))":"14ae3519","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","broadcastRawTransaction(bytes)":"8c0c72e0","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","contains(string,string)":"3fb18aec","copyFile(string,string)":"a54a87d8","copyStorage(address,address)":"203dac0d","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deployCode(string)":"9a8325a0","deployCode(string,bytes)":"29ce9dde","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","ensNamehash(string)":"8c374c65","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envExists(string)":"ce8365f9","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getArtifactPathByCode(bytes)":"eb74848c","getArtifactPathByDeployedCode(bytes)":"6d853ba5","getBlobBaseFee()":"1f6d6ef7","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getBroadcast(string,uint64,uint8)":"3dc90cb3","getBroadcasts(string,uint64)":"f2fa4a26","getBroadcasts(string,uint64,uint8)":"f7afe919","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getDeployment(string)":"a8091d97","getDeployment(string,uint64)":"0debd5d6","getDeployments(string,uint64)":"74e133dd","getFoundryVersion()":"ea991bb5","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","getStateDiff()":"80df01cc","getStateDiffJson()":"f54fe009","getWallets()":"db7a4605","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonType(string,string)":"a9da313b","parseJsonType(string,string,string)":"e3f5ae33","parseJsonTypeArray(string,string,string)":"0175d535","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlType(string,string)":"47fa5e11","parseTomlType(string,string,string)":"f9fa5cdb","parseTomlTypeArray(string,string,string)":"49be3743","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","pauseTracing()":"c94d1f90","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptSecretUint(string)":"69ca02b7","promptUint(string)":"652fd489","publicKeyP256(uint256)":"c453949e","randomAddress()":"d5bee9f5","randomBool()":"cdc126bd","randomBytes(uint256)":"6c5d32a9","randomBytes4()":"9b7cd579","randomBytes8()":"0497b0a5","randomInt()":"111f1202","randomInt(uint256)":"12845966","randomUint()":"25124730","randomUint(uint256)":"cf81e69c","randomUint(uint256,uint256)":"d61b051b","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","rememberKeys(string,string,string,uint32)":"f8d58eaf","rememberKeys(string,string,uint32)":"97cb9189","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetGasMetering()":"be367dd3","resumeGasMetering()":"2bcd50e0","resumeTracing()":"72a09ccb","rpc(string,string)":"1206c8a8","rpc(string,string,string)":"0199a220","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeJsonType(string,bytes)":"6d4f96a6","serializeJsonType(string,string,string,bytes)":"6f93bccb","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setArbitraryStorage(address)":"e1631837","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signAndAttachDelegation(address,uint256)":"c7fa7288","signCompact((address,uint256,uint256,uint256),bytes32)":"3d0e292f","signCompact(address,bytes32)":"8e2f97bf","signCompact(bytes32)":"a282dc4b","signCompact(uint256,bytes32)":"cc2a781f","signDelegation(address,uint256)":"5b593c7b","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startDebugTraceRecording()":"419c8832","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnDebugTraceRecording()":"ced398a2","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert[]\",\"name\":\"potentialReverts\",\"type\":\"tuple[]\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reverter\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"partialMatch\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.PotentialRevert\",\"name\":\"potentialRevert\",\"type\":\"tuple\"}],\"name\":\"assumeNoRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"name\":\"attachDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"broadcastRawTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subject\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"search\",\"type\":\"string\"}],\"name\":\"contains\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"copyStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"constructorArgs\",\"type\":\"bytes\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"deployCode\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ensNamehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"code\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"}],\"name\":\"getArtifactPathByDeployedCode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcast\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"}],\"name\":\"getBroadcasts\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum VmSafe.BroadcastTxType\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.BroadcastTxSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getDeployment\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployedAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"chainId\",\"type\":\"uint64\"}],\"name\":\"getDeployments\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"deployedAddresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFoundryVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiff\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateDiffJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"diff\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"wallets\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseJsonTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlType\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"}],\"name\":\"parseTomlTypeArray\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecretUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"publicKeyP256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"len\",\"type\":\"uint256\"}],\"name\":\"randomBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomBytes8\",\"outputs\":[{\"internalType\":\"bytes8\",\"name\":\"\",\"type\":\"bytes8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bits\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"randomUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"count\",\"type\":\"uint32\"}],\"name\":\"rememberKeys\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"keyAddrs\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resetGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTracing\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"typeDescription\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeJsonType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"setArbitraryStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signAndAttachDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"vs\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"signDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.SignedDelegation\",\"name\":\"signedDelegation\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startDebugTraceRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnDebugTraceRecording\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"stack\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"memoryInput\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"opcode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isOutOfGas\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"contractAddr\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.DebugStep[]\",\"name\":\"step\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"assumeNoRevert((address,bool,bytes))\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters.\"},\"assumeNoRevert((address,bool,bytes)[])\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters.\"},\"assumeNoRevert()\":{\"notice\":\"Discard this run's fuzz inputs and generate new ones if next call reverted.\"},\"attachDelegation((uint8,bytes32,bytes32,uint64,address))\":{\"notice\":\"Designate the next call as an EIP-7702 transaction\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"broadcastRawTransaction(bytes)\":{\"notice\":\"Takes a signed transaction and broadcasts it to the network.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"contains(string,string)\":{\"notice\":\"Returns true if `search` is found in `subject`, false otherwise.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"copyStorage(address,address)\":{\"notice\":\"Utility cheatcode to copy storage of `from` contract to another `to` contract.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deployCode(string)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"deployCode(string,bytes)\":{\"notice\":\"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"ensNamehash(string)\":{\"notice\":\"Returns ENS namehash for provided string.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getArtifactPathByCode(bytes)\":{\"notice\":\"Gets the artifact path from code (aka. creation code).\"},\"getArtifactPathByDeployedCode(bytes)\":{\"notice\":\"Gets the artifact path from deployed code (aka. runtime code).\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBroadcast(string,uint64,uint8)\":{\"notice\":\"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`.\"},\"getBroadcasts(string,uint64)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getBroadcasts(string,uint64,uint8)\":{\"notice\":\"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber.\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployment(string)\":{\"notice\":\"Returns the most recent deployment for the current `chainId`.\"},\"getDeployment(string,uint64)\":{\"notice\":\"Returns the most recent deployment for the given contract on `chainId`\"},\"getDeployments(string,uint64)\":{\"notice\":\"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last.\"},\"getFoundryVersion()\":{\"notice\":\"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get the nonce of a `Wallet`.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"getStateDiff()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session.\"},\"getStateDiffJson()\":{\"notice\":\"Returns state diffs from current `vm.startStateDiffRecording` session, in json format.\"},\"getWallets()\":{\"notice\":\"Returns addresses of available unlocked wallets in the script environment.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call from the callee perspective.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonType(string,string)\":{\"notice\":\"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonType(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseJsonTypeArray(string,string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlType(string,string)\":{\"notice\":\"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlType(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`.\"},\"parseTomlTypeArray(string,string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"pauseTracing()\":{\"notice\":\"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptSecretUint(string)\":{\"notice\":\"Prompts the user for hidden uint256 in the terminal (usually pk).\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"publicKeyP256(uint256)\":{\"notice\":\"Derives secp256r1 public key from the provided `privateKey`.\"},\"randomAddress()\":{\"notice\":\"Returns a random `address`.\"},\"randomBool()\":{\"notice\":\"Returns a random `bool`.\"},\"randomBytes(uint256)\":{\"notice\":\"Returns a random byte array value of the given length.\"},\"randomBytes4()\":{\"notice\":\"Returns a random fixed-size byte array of length 4.\"},\"randomBytes8()\":{\"notice\":\"Returns a random fixed-size byte array of length 8.\"},\"randomInt()\":{\"notice\":\"Returns a random `int256` value.\"},\"randomInt(uint256)\":{\"notice\":\"Returns a random `int256` value of given bits.\"},\"randomUint()\":{\"notice\":\"Returns a random uint256 value.\"},\"randomUint(uint256)\":{\"notice\":\"Returns a random `uint256` value of given bits.\"},\"randomUint(uint256,uint256)\":{\"notice\":\"Returns random uint256 value between the provided range (=min..=max).\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"rememberKeys(string,string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"rememberKeys(string,string,uint32)\":{\"notice\":\"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetGasMetering()\":{\"notice\":\"Reset gas metering (i.e. gas usage is set to gas limit).\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"resumeTracing()\":{\"notice\":\"Unpauses collection of call traces.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpc(string,string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the given endpoint.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeJsonType(string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeJsonType(string,string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setArbitraryStorage(address)\":{\"notice\":\"Utility cheatcode to set arbitrary storage for given target address.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signAndAttachDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction\"},\"signCompact((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signCompact(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address.\"},\"signCompact(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"signCompact(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes.\"},\"signDelegation(address,uint256)\":{\"notice\":\"Sign an EIP-7702 authorization for delegation\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startDebugTraceRecording()\":{\"notice\":\"Records the debug trace during the run.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnDebugTraceRecording()\":{\"notice\":\"Stop debug trace recording and returns the recorded debug trace.\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c\",\"dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert[]","name":"potentialReverts","type":"tuple[]","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.PotentialRevert","name":"potentialRevert","type":"tuple","components":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"bool","name":"partialMatch","type":"bool"},{"internalType":"bytes","name":"revertData","type":"bytes"}]}],"stateMutability":"pure","type":"function","name":"assumeNoRevert"},{"inputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"attachDelegation"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"broadcastRawTransaction"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"subject","type":"string"},{"internalType":"string","name":"search","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"contains","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"copyStorage"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"},{"internalType":"bytes","name":"constructorArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"deployCode","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"ensNamehash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"deployedCode","type":"bytes"}],"stateMutability":"view","type":"function","name":"getArtifactPathByDeployedCode","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcast","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"}],"stateMutability":"view","type":"function","name":"getBroadcasts","outputs":[{"internalType":"struct VmSafe.BroadcastTxSummary[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"enum VmSafe.BroadcastTxType","name":"txType","type":"uint8"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bool","name":"success","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployment","outputs":[{"internalType":"address","name":"deployedAddress","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"},{"internalType":"uint64","name":"chainId","type":"uint64"}],"stateMutability":"view","type":"function","name":"getDeployments","outputs":[{"internalType":"address[]","name":"deployedAddresses","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFoundryVersion","outputs":[{"internalType":"string","name":"version","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiff","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateDiffJson","outputs":[{"internalType":"string","name":"diff","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getWallets","outputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlType","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlTypeArray","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"pauseTracing"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecretUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"publicKeyP256","outputs":[{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"len","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes4","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomBytes8","outputs":[{"internalType":"bytes8","name":"","type":"bytes8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"bits","type":"uint256"}],"stateMutability":"view","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"randomUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"string","name":"language","type":"string"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"rememberKeys","outputs":[{"internalType":"address[]","name":"keyAddrs","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resetGasMetering"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"resumeTracing"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"typeDescription","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeJsonType","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setArbitraryStorage"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signAndAttachDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signCompact","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"signDelegation","outputs":[{"internalType":"struct VmSafe.SignedDelegation","name":"signedDelegation","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"address","name":"implementation","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startDebugTraceRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnDebugTraceRecording","outputs":[{"internalType":"struct VmSafe.DebugStep[]","name":"step","type":"tuple[]","components":[{"internalType":"uint256[]","name":"stack","type":"uint256[]"},{"internalType":"bytes","name":"memoryInput","type":"bytes"},{"internalType":"uint8","name":"opcode","type":"uint8"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isOutOfGas","type":"bool"},{"internalType":"address","name":"contractAddr","type":"address"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"assumeNoRevert((address,bool,bytes))":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the potential revert parameters."},"assumeNoRevert((address,bool,bytes)[])":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverts with the any of the potential revert parameters."},"assumeNoRevert()":{"notice":"Discard this run's fuzz inputs and generate new ones if next call reverted."},"attachDelegation((uint8,bytes32,bytes32,uint64,address))":{"notice":"Designate the next call as an EIP-7702 transaction"},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"broadcastRawTransaction(bytes)":{"notice":"Takes a signed transaction and broadcasts it to the network."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"contains(string,string)":{"notice":"Returns true if `search` is found in `subject`, false otherwise."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"copyStorage(address,address)":{"notice":"Utility cheatcode to copy storage of `from` contract to another `to` contract."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deployCode(string)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"deployCode(string,bytes)":{"notice":"Deploys a contract from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional. Additionally accepts abi-encoded constructor arguments."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"ensNamehash(string)":{"notice":"Returns ENS namehash for provided string."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getArtifactPathByCode(bytes)":{"notice":"Gets the artifact path from code (aka. creation code)."},"getArtifactPathByDeployedCode(bytes)":{"notice":"Gets the artifact path from deployed code (aka. runtime code)."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBroadcast(string,uint64,uint8)":{"notice":"Returns the most recent broadcast for the given contract on `chainId` matching `txType`. For example: The most recent deployment can be fetched by passing `txType` as `CREATE` or `CREATE2`. The most recent call can be fetched by passing `txType` as `CALL`."},"getBroadcasts(string,uint64)":{"notice":"Returns all broadcasts for the given contract on `chainId`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getBroadcasts(string,uint64,uint8)":{"notice":"Returns all broadcasts for the given contract on `chainId` with the specified `txType`. Sorted such that the most recent broadcast is the first element, and the oldest is the last. i.e descending order of BroadcastTxSummary.blockNumber."},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployment(string)":{"notice":"Returns the most recent deployment for the current `chainId`."},"getDeployment(string,uint64)":{"notice":"Returns the most recent deployment for the given contract on `chainId`"},"getDeployments(string,uint64)":{"notice":"Returns all deployments for the given contract on `chainId` Sorted in descending order of deployment time i.e descending order of BroadcastTxSummary.blockNumber. The most recent deployment is the first element, and the oldest is the last."},"getFoundryVersion()":{"notice":"Returns the Foundry version. Format: -+.. Sample output: 0.3.0-nightly+3cb96bde9b.1737036656.debug Note: Build timestamps may vary slightly across platforms due to separate CI jobs. For reliable version comparisons, use UNIX format (e.g., >= 1700000000) to compare timestamps while ignoring minor time differences."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get the nonce of a `Wallet`."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"getStateDiff()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session."},"getStateDiffJson()":{"notice":"Returns state diffs from current `vm.startStateDiffRecording` session, in json format."},"getWallets()":{"notice":"Returns addresses of available unlocked wallets in the script environment."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call from the callee perspective."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonType(string,string)":{"notice":"Parses a string of JSON data and coerces it to type corresponding to `typeDescription`."},"parseJsonType(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type corresponding to `typeDescription`."},"parseJsonTypeArray(string,string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlType(string,string)":{"notice":"Parses a string of TOML data and coerces it to type corresponding to `typeDescription`."},"parseTomlType(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type corresponding to `typeDescription`."},"parseTomlTypeArray(string,string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to type array corresponding to `typeDescription`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"pauseTracing()":{"notice":"Pauses collection of call traces. Useful in cases when you want to skip tracing of complex calls which are not useful for debugging."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptSecretUint(string)":{"notice":"Prompts the user for hidden uint256 in the terminal (usually pk)."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"publicKeyP256(uint256)":{"notice":"Derives secp256r1 public key from the provided `privateKey`."},"randomAddress()":{"notice":"Returns a random `address`."},"randomBool()":{"notice":"Returns a random `bool`."},"randomBytes(uint256)":{"notice":"Returns a random byte array value of the given length."},"randomBytes4()":{"notice":"Returns a random fixed-size byte array of length 4."},"randomBytes8()":{"notice":"Returns a random fixed-size byte array of length 8."},"randomInt()":{"notice":"Returns a random `int256` value."},"randomInt(uint256)":{"notice":"Returns a random `int256` value of given bits."},"randomUint()":{"notice":"Returns a random uint256 value."},"randomUint(uint256)":{"notice":"Returns a random `uint256` value of given bits."},"randomUint(uint256,uint256)":{"notice":"Returns random uint256 value between the provided range (=min..=max)."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"rememberKeys(string,string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic in the specified language at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"rememberKeys(string,string,uint32)":{"notice":"Derive a set number of wallets from a mnemonic at the derivation path `m/44'/60'/0'/0/{0..count}`. The respective private keys are saved to the local forge wallet for later use and their addresses are returned."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetGasMetering()":{"notice":"Reset gas metering (i.e. gas usage is set to gas limit)."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"resumeTracing()":{"notice":"Unpauses collection of call traces."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpc(string,string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the given endpoint."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeJsonType(string,bytes)":{"notice":"See `serializeJson`."},"serializeJsonType(string,string,string,bytes)":{"notice":"See `serializeJson`."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setArbitraryStorage(address)":{"notice":"Utility cheatcode to set arbitrary storage for given target address."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signAndAttachDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization and designate the next call as an EIP-7702 transaction"},"signCompact((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signCompact(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. Raises error if none of the signers passed into the script have provided address."},"signCompact(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"signCompact(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve. Returns a compact signature (`r`, `vs`) as per EIP-2098, where `vs` encodes both the signature's `s` value, and the recovery id `v` in a single bytes32. This format reduces the signature size from 65 to 64 bytes."},"signDelegation(address,uint256)":{"notice":"Sign an EIP-7702 authorization for delegation"},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startDebugTraceRecording()":{"notice":"Records the debug trace during the run."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnDebugTraceRecording()":{"notice":"Stop debug trace recording and returns the recorded debug trace."},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x44bfadcf5a89b8058f80258f2259585c740f9cc45669a0579f4f2753ff2c6354","urls":["bzz-raw://bbc366c8b3499d5030e3b2e45bac23770531f2f5243a0e80e3d5a66b6f9a312c","dweb:/ipfs/QmNxDEB3BaVnKzNaWedtdMshhvCEddB1AsdJZcsQx6jdtC"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35} \ No newline at end of file diff --git a/out/build-info/8794160e65dfedcb744790f912986909.json b/out/build-info/8794160e65dfedcb744790f912986909.json deleted file mode 100644 index d50be65..0000000 --- a/out/build-info/8794160e65dfedcb744790f912986909.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"8794160e65dfedcb744790f912986909","source_id_to_path":{"0":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","1":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","2":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","3":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","4":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","5":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","6":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","7":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","8":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","9":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","10":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","11":"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","12":"lib/openzeppelin-contracts/contracts/utils/Context.sol","13":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","14":"lib/openzeppelin-contracts/contracts/utils/Pausable.sol","15":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","16":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","17":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","18":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","19":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","20":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","21":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","22":"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol","23":"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol","24":"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol","25":"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol","26":"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol","27":"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol","28":"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol","29":"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol","30":"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol","31":"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol","32":"lib/openzeppelin-contracts/lib/forge-std/src/StdToml.sol","33":"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol","34":"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol","35":"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol","36":"lib/openzeppelin-contracts/lib/forge-std/src/console.sol","37":"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol","38":"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol","39":"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol","40":"src/OGRE20.sol","41":"src/OGRE721.sol","42":"src/OGREBridge.sol","43":"src/OGREDAO.sol","44":"src/OGREMarket.sol","45":"src/OGREProposal.sol","46":"src/OGRETokenizedMarket.sol","47":"src/OGRETokenizedTreasury.sol","48":"src/OGRETreasury.sol","49":"src/abstract/ActionHopper.sol","50":"src/abstract/ERC721Receivable.sol","51":"src/abstract/OGREFactory.sol","52":"src/abstract/stub/StubActionHopper.sol","53":"src/abstract/stub/StubERC721Receivable.sol","54":"src/abstract/stub/StubOGREFactory.sol","55":"src/factories/OGRE20Factory.sol","56":"src/factories/OGRE721Factory.sol","57":"src/factories/OGREDAOFactory.sol","58":"src/factories/OGREMarketFactory.sol","59":"src/factories/OGREProposalFactory.sol","60":"src/factories/OGRETreasuryFactory.sol","61":"src/interfaces/IOGRE20Factory.sol","62":"src/interfaces/IOGRE721.sol","63":"src/interfaces/IOGRE721Factory.sol","64":"src/interfaces/IOGREDAO.sol","65":"src/interfaces/IOGREDAOFactory.sol","66":"src/interfaces/IOGREMarket.sol","67":"src/interfaces/IOGREMarketFactory.sol","68":"src/interfaces/IOGREProposal.sol","69":"src/interfaces/IOGREProposalFactory.sol","70":"src/interfaces/IOGRETreasury.sol","71":"src/interfaces/IOGRETreasuryFactory.sol","72":"src/libraries/Constants.sol","73":"src/libraries/Enums.sol","74":"src/libraries/Structs.sol","75":"test/OGRETest.t.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/console.sol/console.json b/out/console.sol/console.json deleted file mode 100644 index 178a4f6..0000000 --- a/out/console.sol/console.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212206ca62f98b71caf0ebd2e4de899bf2dfc7f53fec4f0614a64b77b35644d7b70c164736f6c63430008140033","sourceMap":"66:69203:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:69203:36;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212206ca62f98b71caf0ebd2e4de899bf2dfc7f53fec4f0614a64b77b35644d7b70c164736f6c63430008140033","sourceMap":"66:69203:36:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":"console"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC1155Errors.json b/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 9807aa5..0000000 --- a/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC20Errors.json b/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index 69b5f2d..0000000 --- a/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/draft-IERC6093.sol/IERC721Errors.json b/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index c7069b9..0000000 --- a/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/safeconsole.sol/safeconsole.json b/out/safeconsole.sol/safeconsole.json deleted file mode 100644 index e608f81..0000000 --- a/out/safeconsole.sol/safeconsole.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f2aacad268e83a3b2ab22fc7e460fb01df19db8b5c8843c5a5136edf7924fdb764736f6c63430008140033","sourceMap":"163:427371:39:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;163:427371:39;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f2aacad268e83a3b2ab22fc7e460fb01df19db8b5c8843c5a5136edf7924fdb764736f6c63430008140033","sourceMap":"163:427371:39:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file From d7dff419783e5b09b79ba6c041a9f6d2e8d91b85 Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 18 Apr 2025 20:50:46 -0400 Subject: [PATCH 08/20] reorg --- remappings.txt | 2 +- src/OGREDAO.sol | 136 ++++++++++++++++++---------------- src/abstract/ActionHopper.sol | 2 +- src/interfaces/IOGREDAO.sol | 1 - src/libraries/Enums.sol | 20 ++++- test/OGREDAO.t.sol | 2 +- 6 files changed, 93 insertions(+), 70 deletions(-) diff --git a/remappings.txt b/remappings.txt index 271a28a..8aab353 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,5 +1,5 @@ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/ -forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/ halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/ openzeppelin-contracts/=lib/openzeppelin-contracts/ +solady/=lib/solady/src/ diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 452896b..6801219 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -1,12 +1,11 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/access/AccessControl.sol"; import "./interfaces/IOGREProposalFactory.sol"; import "./interfaces/IOGREProposal.sol"; import "./abstract/ActionHopper.sol"; -// import "./abstract/ERC721Receivable.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; @@ -21,21 +20,26 @@ import {Structs} from "./libraries/Structs.sol"; /** * @title Open Governance Referendum Engine DAO Contract * @author Craig Branscom + * @notice This contract represents a DAO that uses an ERC721 contract to track membership. + * It is designed to be used in conjunction with the OGREProposalFactory contract to create and manage proposals. + * The DAO is responsible for managing the membership of the DAO, including inviting members, registering members, + * and unregistering members. It also manages the creation and evaluation of proposals. + * DAO members may create proposals that may include actions to be executed if the proposal is approved. */ contract OGREDAO is AccessControl, ActionHopper { - address public immutable proposalFactoryAddress; + //========== State ========== + + address public immutable proposalFactoryAddress; //address of proposal factory used by dao address public immutable nftAddress; //ERC721 contract tracking member voting rights - string public daoName; - string public daoMetadata; + string public daoName; //name of the dao + string public daoMetadata; //metadata link for the dao uint256 public quorumThreshold; //minimum percentage of total members (nft tokens) participation needed to recognize a proposal (e.g. 555 = 5.55%) uint256 public supportThreshold; //minimum percentage of YES votes required to pass proposal (e.g. 6700 = 67.00%) uint256 public minVotePeriod; //min length of time (in seconds) that a proposal must be open for a vote - // Enums.AccessType daoAccessType; - // uint256 public inviteCount; //number of outstanding invites. when an invite is accepted this number is reduced uint256 public memberCount; //number of invited nfts from set that have been registered to the dao. this number is reduced if token is unregistered or banned mapping(uint256 => Enums.MemberStatus) private _members; //token id => member status @@ -43,35 +47,37 @@ contract OGREDAO is AccessControl, ActionHopper { mapping(uint256 => address) public proposals; //proposal[i] => proposal address mapping(address => uint256) private _proposals; //proposal[i] => proposal id uint256 public proposalCost; //amount required to make a proposal (in wei) - // address public proposalCostToken; //zero address indicates native token + address public proposalCostToken; //zero address indicates native token + + //========== Events ========== /** - * @notice logs a successful dao creation + * @notice Logs a successful dao creation * @param nftAddress address of nft contract linked to dao * @param proposalFactoryAddress address of proposal factory used by dao * @param admin address set with initial admin role */ - event DAOCreated(address nftAddress, address proposalFactoryAddress, address admin); + event DAOCreated(address nftAddress, address indexed proposalFactoryAddress, address indexed admin); /** - * @notice logs a successful member invited + * @notice Logs a successful member invited * @param daoAddress address of dao where member was invited * @param nftAddress address of nft contract linked to dao * @param tokenId id of nft token being registered to dao */ - event MemberInvited(address daoAddress, address nftAddress, uint256 tokenId); + event MemberInvited(address daoAddress, address indexed nftAddress, uint256 indexed tokenId); /** - * @notice logs a successful member registration + * @notice Logs a successful member registration * @param daoAddress address of dao where member was registered * @param nftAddress address of nft contract linked to dao * @param tokenId id of nft token being registered to dao * @param memberAddress address registering token */ - event MemberRegistered(address daoAddress, address nftAddress, uint256 tokenId, address memberAddress); + event MemberRegistered(address daoAddress, address indexed nftAddress, uint256 indexed tokenId, address indexed memberAddress); /** - * @notice logs a successful member unregistration + * @notice Logs a successful member unregistration * @param daoAddress address of dao where member was unregistered * @param nftAddress address of nft contract linked to dao * @param tokenId id of nft token being unregistered @@ -80,7 +86,7 @@ contract OGREDAO is AccessControl, ActionHopper { event MemberUnregistered(address daoAddress, address nftAddress, uint256 tokenId, address memberAddress); /** - * @notice logs a proposal creation + * @notice Logs a proposal creation * @param daoAddress address of dao * @param proposal address of proposal contract * @param proposalId unique proposal id assigned by dao @@ -89,7 +95,7 @@ contract OGREDAO is AccessControl, ActionHopper { event ProposalCreated(address daoAddress, address proposal, uint256 proposalId, address creator); /** - * @notice logs a successful proposal evaluation + * @notice Logs a successful proposal evaluation * @param quorumPassed true if proposal passed dao quorum threshold * @param supportPassed true if proposal passed dao support threshold * @param totalVotes final vote count on proposal @@ -97,11 +103,27 @@ contract OGREDAO is AccessControl, ActionHopper { event ProposalEvaluated(bool quorumPassed, bool supportPassed, uint256 totalVotes, uint256 quorumVotesThreshold, uint256 supportVotesThreshold); /** - * @notice logs successful execution of all proposal actions + * @notice Logs successful execution of all proposal actions * @param proposal address of proposal that was executed */ event ProposalExecuted(address proposal); + //========== Errors ========== + + error ZeroAddressNotAllowed(); + error InvalidThreshold(uint256 threshold); + error InvalidDelay(); + error TokenAlreadyRegistered(); + error TokenAlreadyUnregistered(); + error NotTokenOwner(); + error InsufficientPayment(); + error NotProposal(); + error InvalidProposalState(); + error VotePeriodNotEnded(); + error NoActionsToExecute(); + + //========== Constructor ========== + /** * @param daoName_ name of the dao * @param daoMetadata_ metadata link for the dao @@ -120,8 +142,8 @@ contract OGREDAO is AccessControl, ActionHopper { address admin_, uint256 delay_ ) ActionHopper(delay_) { - require(nftAddress_ != address(0x0), "nft address cannot be zero address"); - require(admin_ != address(0x0), "admin role cannot be zero address"); + if (nftAddress_ == address(0x0)) revert ZeroAddressNotAllowed(); + if (admin_ == address(0x0)) revert ZeroAddressNotAllowed(); daoName = daoName_; daoMetadata = daoMetadata_; @@ -136,10 +158,10 @@ contract OGREDAO is AccessControl, ActionHopper { emit DAOCreated(nftAddress_, proposalFactoryAddress_, admin_); } - //---------- Config ---------- + //========== Configuration ========== /** - * @dev sets new dao name + * @dev Sets new dao name * @param newDAOName new dao name */ function setDAOName(string memory newDAOName) public { @@ -147,7 +169,7 @@ contract OGREDAO is AccessControl, ActionHopper { } /** - * @dev sets new dao metadata + * @dev Sets new dao metadata * @param newDAOMetadata new dao metadata */ function setDAOMetadata(string memory newDAOMetadata) public { @@ -155,29 +177,29 @@ contract OGREDAO is AccessControl, ActionHopper { } /** - * @dev sets new quorum threshold for dao. + * @dev Sets new quorum threshold for dao. * @param newQuorumThreshold quorum percentage (e.g. 555 = 5.55%) */ function setQuorumThreshold(uint256 newQuorumThreshold) public { - require(newQuorumThreshold <= 10000, "threshold cannot be above 10000 (100%)"); - require(newQuorumThreshold > 0, "threshold must be above zero"); + if (newQuorumThreshold > 10000) revert InvalidThreshold(newQuorumThreshold); + if (newQuorumThreshold == 0) revert InvalidThreshold(newQuorumThreshold); quorumThreshold = newQuorumThreshold; } /** - * @dev sets new support threshold for dao + * @dev Sets new support threshold for dao * @param newSupportThreshold support percentage (e.g. 555 = 5.55%) */ function setSupportThreshold(uint256 newSupportThreshold) public { - require(newSupportThreshold <= 10000, "threshold cannot be above 10000 (100%)"); - require(newSupportThreshold > 0, "threshold must be above zero"); + if (newSupportThreshold > 10000) revert InvalidThreshold(newSupportThreshold); + if (newSupportThreshold == 0) revert InvalidThreshold(newSupportThreshold); supportThreshold = newSupportThreshold; } /** - * @dev sets new min vote period for dao + * @dev Sets new min vote period for dao * @param newMinVotePeriod min time in seconds */ function setMinVotePeriod(uint256 newMinVotePeriod) public { @@ -185,27 +207,19 @@ contract OGREDAO is AccessControl, ActionHopper { } /** - * @dev sets a new delay for action hopper + * @dev Sets a new delay for action hopper * @param newDelay new delay value (in seconds) */ - function setDelay(uint256 newDelay) public { - require(newDelay > 0, "delay must be greater than zero"); + function setActionDelay(uint256 newDelay) public { + if (newDelay == 0) revert InvalidDelay(); _setDelay(newDelay); } - //---------- Members ---------- - - function inviteMember(uint256 tokenId) public onlyRole(Constants.DAO_INVITE) { - require(_members[tokenId] == Enums.MemberStatus.UNREGISTERED, "token must be unregistered to invite"); - - _members[tokenId] = Enums.MemberStatus.INVITED; - - emit MemberInvited(address(this), nftAddress, tokenId); - } + //========== Membership ========== function registerMember(uint256 tokenId) public { - require(IERC721(nftAddress).ownerOf(tokenId) == msg.sender, "sender must be token owner to register"); - require(_members[tokenId] != Enums.MemberStatus.REGISTERED, "token is already registered"); + if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert NotTokenOwner(); + if (_members[tokenId] == Enums.MemberStatus.REGISTERED) revert TokenAlreadyRegistered(); _members[tokenId] = Enums.MemberStatus.REGISTERED; memberCount += 1; @@ -214,8 +228,8 @@ contract OGREDAO is AccessControl, ActionHopper { } function unregisterMember(uint256 tokenId) public { - require(IERC721(nftAddress).ownerOf(tokenId) == msg.sender, "sender must be token owner to unregister"); - require(_members[tokenId] != Enums.MemberStatus.UNREGISTERED, "token is already unregistered"); + if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert NotTokenOwner(); + if (_members[tokenId] == Enums.MemberStatus.UNREGISTERED) revert TokenAlreadyUnregistered(); _members[tokenId] = Enums.MemberStatus.UNREGISTERED; memberCount -= 1; @@ -227,14 +241,10 @@ contract OGREDAO is AccessControl, ActionHopper { return _members[tokenId]; } - function isTokenOwner(uint256 tokenId, address member) public view returns (bool) { - return IERC721(nftAddress).ownerOf(tokenId) == member; - } - - //---------- Proposals ---------- + //========== Proposals ========== /** - * @dev returns true if address is a proposal contract created by dao. + * @dev Returns true if address is a proposal contract created by dao. * @param proposal address to check */ function isProposal(address proposal) public view returns (bool) { @@ -242,10 +252,10 @@ contract OGREDAO is AccessControl, ActionHopper { } /** - * @dev craft a new proposal + * @dev Crafts a new proposal */ function draftProposal(string memory proposalTitle) public payable returns (address) { - require(msg.value == proposalCost, "insufficient payment for draft proposal"); + if (msg.value != proposalCost) revert InsufficientPayment(); //call proposal factory to create new proposal address prop = IOGREProposalFactory(proposalFactoryAddress).produceOGREProposal(proposalTitle, address(this), msg.sender); @@ -268,10 +278,10 @@ contract OGREDAO is AccessControl, ActionHopper { * @return bool true if proposal passed, false if failed */ function evaluateProposal(address proposal) public returns (bool) { - require(isProposal(proposal), "address is not a proposal created by this dao"); - require(IOGREProposal(proposal).status() == Enums.ProposalStatus.PROPOSED, "invalid proposal state"); - require(IOGREProposal(proposal).startTime() != 0, "vote period has not been set"); - require(block.timestamp > IOGREProposal(proposal).endTime(), "cannot evaluate before vote period has ended"); + if (!isProposal(proposal)) revert NotProposal(); + if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PROPOSED) revert InvalidProposalState(); + if (IOGREProposal(proposal).startTime() == 0) revert InvalidProposalState(); + if (block.timestamp <= IOGREProposal(proposal).endTime()) revert VotePeriodNotEnded(); uint256 noVotes = IOGREProposal(proposal).voteTotals(0); uint256 yesVotes = IOGREProposal(proposal).voteTotals(1); @@ -316,12 +326,12 @@ contract OGREDAO is AccessControl, ActionHopper { } /** - * @dev executes readied actions + * @dev Executes readied actions */ function executeProposal(address proposal) public { - require(isProposal(proposal), "address is not a proposal created by this dao"); - require(IOGREProposal(proposal).status() == Enums.ProposalStatus.PASSED, "invalid proposal state"); - require(IOGREProposal(proposal).getActionCount() > 0, "no actions to execute"); + if (!isProposal(proposal)) revert NotProposal(); + if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PASSED) revert InvalidProposalState(); + if (IOGREProposal(proposal).getActionCount() == 0) revert NoActionsToExecute(); //set proposal status to executed IOGREProposal(proposal).updateStatus(4); @@ -336,6 +346,8 @@ contract OGREDAO is AccessControl, ActionHopper { emit ProposalExecuted(proposal); } + //========== Receive ========== + receive() external payable {} fallback() external payable {} diff --git a/src/abstract/ActionHopper.sol b/src/abstract/ActionHopper.sol index 3d23800..285811b 100644 --- a/src/abstract/ActionHopper.sol +++ b/src/abstract/ActionHopper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; /** * @title Action Hopper Contract diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index 0235373..f922b09 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -17,7 +17,6 @@ interface IOGREDAO { function memberCount() external view returns (uint256); function getMemberStatus(uint256 tokenId) external view returns (uint256); - function isTokenOwner(uint256 tokenId, address member) external view returns (bool); function proposalCount() external view returns (uint256); function proposals(uint256) external view returns (address); diff --git a/src/libraries/Enums.sol b/src/libraries/Enums.sol index a8b3ea5..4519d07 100644 --- a/src/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -26,18 +26,19 @@ library Enums { */ enum MemberStatus { UNREGISTERED, - INVITED, REGISTERED, BANNED } /** - * OPEN: any nft holder can register to dao as a member - * INVITE: only dao owner can invite new members + * OPEN: any nft holder can self-register as a member + * INVITE: only dao members can register a member + * PRIVATE: only dao can register a member */ enum AccessType { OPEN, - INVITE + INVITE, + PRIVATE } /** @@ -49,4 +50,15 @@ library Enums { BID } + /** + * ERC20: + * ERC721: + * ERC1155: + */ + enum ContractType { + ERC20, + ERC721, + ERC1155 + } + } \ No newline at end of file diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index dae883d..b1bb519 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import "forge-std/Test.sol"; +import {Test} from "forge-std/Test.sol"; import "../src/OGREDAO.sol"; import "../src/samples/SampleERC721.sol"; import "../src/OGREProposal.sol"; From 4e7851a30df13f4b268ea90c1d180cbc0db9e7f3 Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 18 Apr 2025 20:56:18 -0400 Subject: [PATCH 09/20] add forge-std --- .gitmodules | 3 +++ lib/forge-std | 1 + remappings.txt | 1 + src/OGREProposal.sol | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) create mode 160000 lib/forge-std diff --git a/.gitmodules b/.gitmodules index d7a4ab4..b15ca43 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "lib/solady"] path = lib/solady url = https://github.com/vectorized/solady +[submodule "lib/forge-std"] + path = lib/forge-std + url = https://github.com/foundry-rs/forge-std diff --git a/lib/forge-std b/lib/forge-std new file mode 160000 index 0000000..3b20d60 --- /dev/null +++ b/lib/forge-std @@ -0,0 +1 @@ +Subproject commit 3b20d60d14b343ee4f908cb8079495c07f5e8981 diff --git a/remappings.txt b/remappings.txt index 8aab353..62acf15 100644 --- a/remappings.txt +++ b/remappings.txt @@ -3,3 +3,4 @@ erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/ halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/ openzeppelin-contracts/=lib/openzeppelin-contracts/ solady/=lib/solady/src/ +forge-std/=lib/forge-std/src/ diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 167976d..0994016 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -174,7 +174,7 @@ contract OGREProposal is Ownable { //TODO: check dao membership? // require(IOGREDAO(daoAddress).getMemberStatus() == 1, "member is not registered"); require(status == Enums.ProposalStatus.PROPOSED, "invalid state"); - require(IOGREDAO(daoAddress).isTokenOwner(tokenId, msg.sender), "caller not token owner"); + // require(IOGREDAO(daoAddress).isTokenOwner(tokenId, msg.sender), "caller not token owner"); require(vote <= 2, "vote must be either NO (0), YES (1), or ABSTAIN (2)"); require(block.timestamp >= startTime, "must be after start time"); require(block.timestamp <= endTime, "must be before end time"); From c59fdc5cc8e10787339a0b32fb570307ffce1ff6 Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 19 Apr 2025 23:50:34 -0400 Subject: [PATCH 10/20] clean build --- src/OGREDAO.sol | 46 ++++--------------- src/factories/OGREDAOFactory.sol | 6 +-- test/OGREDAO.t.sol | 13 ++---- {src => todo}/OGRETreasury.sol | 16 +++---- .../factories/OGRETreasuryFactory.sol | 0 5 files changed, 23 insertions(+), 58 deletions(-) rename {src => todo}/OGRETreasury.sol (65%) rename {src => todo}/factories/OGRETreasuryFactory.sol (100%) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 6801219..6181a8f 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "@openzeppelin/contracts/access/AccessControl.sol"; +// import "@openzeppelin/contracts/access/AccessControl.sol"; import "./interfaces/IOGREProposalFactory.sol"; import "./interfaces/IOGREProposal.sol"; import "./abstract/ActionHopper.sol"; @@ -26,16 +26,14 @@ import {Structs} from "./libraries/Structs.sol"; * and unregistering members. It also manages the creation and evaluation of proposals. * DAO members may create proposals that may include actions to be executed if the proposal is approved. */ -contract OGREDAO is AccessControl, ActionHopper { +contract OGREDAO is ActionHopper { //========== State ========== + address public immutable parentDAO; //address of parent dao address public immutable proposalFactoryAddress; //address of proposal factory used by dao address public immutable nftAddress; //ERC721 contract tracking member voting rights - string public daoName; //name of the dao - string public daoMetadata; //metadata link for the dao - uint256 public quorumThreshold; //minimum percentage of total members (nft tokens) participation needed to recognize a proposal (e.g. 555 = 5.55%) uint256 public supportThreshold; //minimum percentage of YES votes required to pass proposal (e.g. 6700 = 67.00%) uint256 public minVotePeriod; //min length of time (in seconds) that a proposal must be open for a vote @@ -55,9 +53,8 @@ contract OGREDAO is AccessControl, ActionHopper { * @notice Logs a successful dao creation * @param nftAddress address of nft contract linked to dao * @param proposalFactoryAddress address of proposal factory used by dao - * @param admin address set with initial admin role */ - event DAOCreated(address nftAddress, address indexed proposalFactoryAddress, address indexed admin); + event DAOCreated(address parentDAO, address nftAddress, address indexed proposalFactoryAddress); /** * @notice Logs a successful member invited @@ -125,57 +122,30 @@ contract OGREDAO is AccessControl, ActionHopper { //========== Constructor ========== /** - * @param daoName_ name of the dao - * @param daoMetadata_ metadata link for the dao - * @param nftAddress_ address of ERC721 contract representing voting rights + * @param nftAddress_ address of ERC721 contract representing membership * @param proposalFactoryAddress_ address of OGREProposalFactory contract * @param proposalCost_ required cost to draft a proposal (in wei) - * @param admin_ address that will be assigned the DAO_ADMIN role * @param delay_ amount of time that must elapse before a loaded action can be executed (in seconds) */ constructor( - string memory daoName_, - string memory daoMetadata_, + address parentDAO_, address nftAddress_, address proposalFactoryAddress_, uint256 proposalCost_, - address admin_, uint256 delay_ ) ActionHopper(delay_) { if (nftAddress_ == address(0x0)) revert ZeroAddressNotAllowed(); - if (admin_ == address(0x0)) revert ZeroAddressNotAllowed(); - daoName = daoName_; - daoMetadata = daoMetadata_; + parentDAO = parentDAO_; nftAddress = nftAddress_; proposalFactoryAddress = proposalFactoryAddress_; proposalCost = proposalCost_; - _grantRole(Constants.DAO_ADMIN, admin_); - _grantRole(Constants.DAO_INVITE, admin_); - _setRoleAdmin(Constants.DAO_INVITE, Constants.DAO_ADMIN); - - emit DAOCreated(nftAddress_, proposalFactoryAddress_, admin_); + emit DAOCreated(parentDAO_, nftAddress_, proposalFactoryAddress_); } //========== Configuration ========== - /** - * @dev Sets new dao name - * @param newDAOName new dao name - */ - function setDAOName(string memory newDAOName) public { - daoName = newDAOName; - } - - /** - * @dev Sets new dao metadata - * @param newDAOMetadata new dao metadata - */ - function setDAOMetadata(string memory newDAOMetadata) public { - daoMetadata = newDAOMetadata; - } - /** * @dev Sets new quorum threshold for dao. * @param newQuorumThreshold quorum percentage (e.g. 555 = 5.55%) diff --git a/src/factories/OGREDAOFactory.sol b/src/factories/OGREDAOFactory.sol index e397ebd..608d897 100644 --- a/src/factories/OGREDAOFactory.sol +++ b/src/factories/OGREDAOFactory.sol @@ -7,15 +7,13 @@ import "../OGREDAO.sol"; contract OGREDAOFactory is OGREFactory { function produceOGREDAO( - string memory name, - string memory metadata, + address parentDAO, address nft, address proposalFactory, uint256 proposalCost, - address admin, uint256 delay ) public returns (address) { - OGREDAO dao = new OGREDAO(name, metadata, nft, proposalFactory, proposalCost, admin, delay); + OGREDAO dao = new OGREDAO(parentDAO, nft, proposalFactory, proposalCost, delay); productionCount += 1; emit ContractProduced(address(dao), msg.sender); return address(dao); diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index b1bb519..c986986 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -50,12 +50,10 @@ contract OGREDAOTest is Test { proposalFactoryContract = new OGREProposalFactory(); nftContract = new SampleERC721(name, symbol); daoContract = new OGREDAO( - daoName, - daoMetadata, + address(0x0), address(nftContract), address(proposalFactoryContract), proposalCost, - userA, delay ); @@ -65,15 +63,14 @@ contract OGREDAOTest is Test { } } - function test_DeployOGREDAO() public { - assertEq(daoContract.daoName(), daoName); + function test_DeployOGREDAO() public view { assertEq(daoContract.nftAddress(), address(nftContract)); assertEq(daoContract.proposalFactoryAddress(), address(proposalFactoryContract)); assertEq(daoContract.delay(), delay); - assertTrue(daoContract.hasRole(daoAdminRole, userA)); - assertFalse(daoContract.hasRole(daoAdminRole, userB)); - assertEq(daoContract.getRoleAdmin(daoInviteRole), daoAdminRole); + // assertTrue(daoContract.hasRole(daoAdminRole, userA)); + // assertFalse(daoContract.hasRole(daoAdminRole, userB)); + // assertEq(daoContract.getRoleAdmin(daoInviteRole), daoAdminRole); } // function testSetNewDAOName() public { diff --git a/src/OGRETreasury.sol b/todo/OGRETreasury.sol similarity index 65% rename from src/OGRETreasury.sol rename to todo/OGRETreasury.sol index 2e3ef89..87a56a9 100644 --- a/src/OGRETreasury.sol +++ b/todo/OGRETreasury.sol @@ -19,14 +19,14 @@ contract OGRETreasury is Ownable, Pausable { daoAddress = daoAddress_; } - function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4) { - // require(_incomingOrderItem.contractAddress != address(0x0), "not expecting incoming order item"); - // require(_incomingOrderItem.itemType == ItemType.ERC721, "wrong item type sent"); - require(IERC721(from).ownerOf(tokenId) == address(this), "item not received"); - if (data.length > 0) {} - // IERC721(from).approve(msg.sender, tokenId); - return IERC721Receiver.onERC721Received.selector; - } + // function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4) { + // // require(_incomingOrderItem.contractAddress != address(0x0), "not expecting incoming order item"); + // // require(_incomingOrderItem.itemType == ItemType.ERC721, "wrong item type sent"); + // require(IERC721(from).ownerOf(tokenId) == address(this), "item not received"); + // if (data.length > 0) {} + // // IERC721(from).approve(msg.sender, tokenId); + // return IERC721Receiver.onERC721Received.selector; + // } function sendERC721(address to, address erc721Contract, uint256 tokenId) public { // require(_erc721Balances[erc721Contract][tokenId], "erc721 token not owned"); diff --git a/src/factories/OGRETreasuryFactory.sol b/todo/factories/OGRETreasuryFactory.sol similarity index 100% rename from src/factories/OGRETreasuryFactory.sol rename to todo/factories/OGRETreasuryFactory.sol From 2a262af884b7e731e3b0ea778fdd6e9b636ab073 Mon Sep 17 00:00:00 2001 From: Craig Date: Sun, 20 Apr 2025 17:43:04 -0400 Subject: [PATCH 11/20] cleanup --- src/OGREDAO.sol | 66 +++++++++------------ {todo => src}/abstract/ERC721Receivable.sol | 27 +++++++-- 2 files changed, 49 insertions(+), 44 deletions(-) rename {todo => src}/abstract/ERC721Receivable.sol (69%) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 6181a8f..39160d8 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -11,12 +11,6 @@ import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; import {Structs} from "./libraries/Structs.sol"; -//TODO: index event params? -//TODO: track proposal status? -//TODO: forward tokens sent to dao to treasury? -//TODO: draftAndLaunchProposal? scheduleProposal()? -//TODO: add supportsInterface()? see ERC165 - /** * @title Open Governance Referendum Engine DAO Contract * @author Craig Branscom @@ -36,7 +30,7 @@ contract OGREDAO is ActionHopper { uint256 public quorumThreshold; //minimum percentage of total members (nft tokens) participation needed to recognize a proposal (e.g. 555 = 5.55%) uint256 public supportThreshold; //minimum percentage of YES votes required to pass proposal (e.g. 6700 = 67.00%) - uint256 public minVotePeriod; //min length of time (in seconds) that a proposal must be open for a vote + uint256 public minVoteDuration; //min length of time (in seconds) that a proposal must be open for a vote uint256 public memberCount; //number of invited nfts from set that have been registered to the dao. this number is reduced if token is unregistered or banned mapping(uint256 => Enums.MemberStatus) private _members; //token id => member status @@ -54,42 +48,29 @@ contract OGREDAO is ActionHopper { * @param nftAddress address of nft contract linked to dao * @param proposalFactoryAddress address of proposal factory used by dao */ - event DAOCreated(address parentDAO, address nftAddress, address indexed proposalFactoryAddress); - - /** - * @notice Logs a successful member invited - * @param daoAddress address of dao where member was invited - * @param nftAddress address of nft contract linked to dao - * @param tokenId id of nft token being registered to dao - */ - event MemberInvited(address daoAddress, address indexed nftAddress, uint256 indexed tokenId); + event DAOCreated(address parentDAO, address nftAddress, address proposalFactoryAddress); /** * @notice Logs a successful member registration - * @param daoAddress address of dao where member was registered - * @param nftAddress address of nft contract linked to dao * @param tokenId id of nft token being registered to dao * @param memberAddress address registering token */ - event MemberRegistered(address daoAddress, address indexed nftAddress, uint256 indexed tokenId, address indexed memberAddress); + event MemberRegistered(uint256 indexed tokenId, address indexed memberAddress); /** * @notice Logs a successful member unregistration - * @param daoAddress address of dao where member was unregistered - * @param nftAddress address of nft contract linked to dao * @param tokenId id of nft token being unregistered * @param memberAddress address unregistering token */ - event MemberUnregistered(address daoAddress, address nftAddress, uint256 tokenId, address memberAddress); + event MemberUnregistered(uint256 indexed tokenId, address indexed memberAddress); /** * @notice Logs a proposal creation - * @param daoAddress address of dao * @param proposal address of proposal contract * @param proposalId unique proposal id assigned by dao * @param creator address of proposal creator */ - event ProposalCreated(address daoAddress, address proposal, uint256 proposalId, address creator); + event ProposalCreated(address proposal, uint256 proposalId, address creator); /** * @notice Logs a successful proposal evaluation @@ -107,13 +88,14 @@ contract OGREDAO is ActionHopper { //========== Errors ========== - error ZeroAddressNotAllowed(); + error InvalidAddress(string variableName, address value); + error InvalidSender(address sender, address expected); error InvalidThreshold(uint256 threshold); error InvalidDelay(); error TokenAlreadyRegistered(); error TokenAlreadyUnregistered(); error NotTokenOwner(); - error InsufficientPayment(); + error InsufficientPayment(uint256 provided, uint256 required); error NotProposal(); error InvalidProposalState(); error VotePeriodNotEnded(); @@ -122,6 +104,8 @@ contract OGREDAO is ActionHopper { //========== Constructor ========== /** + * @notice Creates a new OGREDAO + * @param parentDAO_ address of parent dao * @param nftAddress_ address of ERC721 contract representing membership * @param proposalFactoryAddress_ address of OGREProposalFactory contract * @param proposalCost_ required cost to draft a proposal (in wei) @@ -129,13 +113,19 @@ contract OGREDAO is ActionHopper { */ constructor( address parentDAO_, - address nftAddress_, - address proposalFactoryAddress_, - uint256 proposalCost_, + address nftAddress_, + address proposalFactoryAddress_, + uint256 proposalCost_, uint256 delay_ ) ActionHopper(delay_) { - if (nftAddress_ == address(0x0)) revert ZeroAddressNotAllowed(); + // validate + if (parentDAO_ != address(0x0)) { + if (msg.sender != parentDAO_) revert InvalidSender(msg.sender, parentDAO_); + } + if (nftAddress_ == address(0x0)) revert InvalidAddress("nftAddress_", nftAddress_); + if (proposalFactoryAddress_ == address(0x0)) revert InvalidAddress("proposalFactoryAddress_", proposalFactoryAddress_); + // initialize parentDAO = parentDAO_; nftAddress = nftAddress_; proposalFactoryAddress = proposalFactoryAddress_; @@ -169,11 +159,11 @@ contract OGREDAO is ActionHopper { } /** - * @dev Sets new min vote period for dao - * @param newMinVotePeriod min time in seconds + * @dev Sets new min vote duration for dao + * @param newMinVoteDuration min time in seconds */ - function setMinVotePeriod(uint256 newMinVotePeriod) public { - minVotePeriod = newMinVotePeriod; + function setMinVoteDuration(uint256 newMinVoteDuration) public { + minVoteDuration = newMinVoteDuration; } /** @@ -194,7 +184,7 @@ contract OGREDAO is ActionHopper { _members[tokenId] = Enums.MemberStatus.REGISTERED; memberCount += 1; - emit MemberRegistered(address(this), nftAddress, tokenId, msg.sender); + emit MemberRegistered(tokenId, msg.sender); } function unregisterMember(uint256 tokenId) public { @@ -204,7 +194,7 @@ contract OGREDAO is ActionHopper { _members[tokenId] = Enums.MemberStatus.UNREGISTERED; memberCount -= 1; - emit MemberUnregistered(address(this), nftAddress, tokenId, msg.sender); + emit MemberUnregistered(tokenId, msg.sender); } function getMemberStatus(uint256 tokenId) public view returns (Enums.MemberStatus) { @@ -225,7 +215,7 @@ contract OGREDAO is ActionHopper { * @dev Crafts a new proposal */ function draftProposal(string memory proposalTitle) public payable returns (address) { - if (msg.value != proposalCost) revert InsufficientPayment(); + if (msg.value != proposalCost) revert InsufficientPayment(msg.value, proposalCost); //call proposal factory to create new proposal address prop = IOGREProposalFactory(proposalFactoryAddress).produceOGREProposal(proposalTitle, address(this), msg.sender); @@ -235,7 +225,7 @@ contract OGREDAO is ActionHopper { _proposals[prop] = proposalCount; proposals[proposalCount] = prop; - emit ProposalCreated(address(this), prop, proposalCount, msg.sender); + emit ProposalCreated(prop, proposalCount, msg.sender); return prop; } diff --git a/todo/abstract/ERC721Receivable.sol b/src/abstract/ERC721Receivable.sol similarity index 69% rename from todo/abstract/ERC721Receivable.sol rename to src/abstract/ERC721Receivable.sol index 8c441f2..868c79d 100644 --- a/todo/abstract/ERC721Receivable.sol +++ b/src/abstract/ERC721Receivable.sol @@ -1,15 +1,16 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; +pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; -//TODO: remove allowlist logic? split into sendlist and receivelist? +//TODO: remove allowlist logic? split into allowlist and blocklist? //TODO: remove inventory tracking logic? could call balanceOf() instead? -//TODO: use safeTransferFrom with calldata param instead? /** - * @title allows children to receive and send erc721 tokens + * @title ERC721 Receivable Contract + * @author Craig Branscom + * @notice Allows inherited contracts to send and receive ERC721 tokens. */ abstract contract ERC721Receivable is IERC721Receiver { @@ -26,6 +27,13 @@ abstract contract ERC721Receivable is IERC721Receiver { // allowedERC721Contracts[erc721Contract] = true; // }; + /** + * @notice Receives an ERC721 token. + * @param operator address of operator + * @param from address of sender + * @param tokenId id of token + * @param data data to send with the token + */ function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external virtual override returns (bytes4) { // require(allowedERC721Contracts[from], "contract is not allowed"); // require(_erc721Balances[from][tokenId] == false, "erc721 token already owned"); @@ -34,10 +42,17 @@ abstract contract ERC721Receivable is IERC721Receiver { return IERC721Receiver.onERC721Received.selector; } - function _sendERC721(address to, uint256 tokenId, address erc721Contract) internal { + /** + * @notice Sends an ERC721 token to a recipient. + * @param to address of recipient + * @param tokenId id of token to send + * @param erc721Contract address of ERC721 contract + * @param data data to send with the token + */ + function _sendERC721(address to, uint256 tokenId, address erc721Contract, bytes calldata data) internal { // require(_erc721Balances[erc721Contract][tokenId], "erc721 token not owned"); // delete _erc721Balances[erc721Contract][tokenId]; - IERC721(erc721Contract).safeTransferFrom(address(this), to, tokenId); + IERC721(erc721Contract).safeTransferFrom(address(this), to, tokenId, data); emit ERC721Sent(to, tokenId, erc721Contract); } } \ No newline at end of file From 2875f3fba23760773632c5c45f4bdcebb564feae Mon Sep 17 00:00:00 2001 From: Craig Date: Sun, 20 Apr 2025 19:17:12 -0400 Subject: [PATCH 12/20] proposal cleanup --- src/OGREDAO.sol | 40 ++++--- src/OGREProposal.sol | 200 ++++++++++++++++++++-------------- src/abstract/ActionHopper.sol | 8 ++ src/interfaces/IOGREDAO.sol | 12 +- 4 files changed, 159 insertions(+), 101 deletions(-) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 39160d8..8571bbc 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -89,12 +89,12 @@ contract OGREDAO is ActionHopper { //========== Errors ========== error InvalidAddress(string variableName, address value); - error InvalidSender(address sender, address expected); + error InvalidSender(address sender, address required); + error InvalidMemberStatus(); error InvalidThreshold(uint256 threshold); error InvalidDelay(); error TokenAlreadyRegistered(); error TokenAlreadyUnregistered(); - error NotTokenOwner(); error InsufficientPayment(uint256 provided, uint256 required); error NotProposal(); error InvalidProposalState(); @@ -177,8 +177,12 @@ contract OGREDAO is ActionHopper { //========== Membership ========== + /** + * @dev Registers a member to the dao + * @param tokenId id of nft token being registered to dao + */ function registerMember(uint256 tokenId) public { - if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert NotTokenOwner(); + if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidSender(msg.sender, IERC721(nftAddress).ownerOf(tokenId)); if (_members[tokenId] == Enums.MemberStatus.REGISTERED) revert TokenAlreadyRegistered(); _members[tokenId] = Enums.MemberStatus.REGISTERED; @@ -187,8 +191,12 @@ contract OGREDAO is ActionHopper { emit MemberRegistered(tokenId, msg.sender); } + /** + * @dev Unregisters a member from the dao + * @param tokenId id of nft token being unregistered from dao + */ function unregisterMember(uint256 tokenId) public { - if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert NotTokenOwner(); + if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidSender(msg.sender, IERC721(nftAddress).ownerOf(tokenId)); if (_members[tokenId] == Enums.MemberStatus.UNREGISTERED) revert TokenAlreadyUnregistered(); _members[tokenId] = Enums.MemberStatus.UNREGISTERED; @@ -197,6 +205,11 @@ contract OGREDAO is ActionHopper { emit MemberUnregistered(tokenId, msg.sender); } + /** + * @dev Returns the status of a member + * @param tokenId id of nft token to check + * @return status status of member + */ function getMemberStatus(uint256 tokenId) public view returns (Enums.MemberStatus) { return _members[tokenId]; } @@ -204,15 +217,7 @@ contract OGREDAO is ActionHopper { //========== Proposals ========== /** - * @dev Returns true if address is a proposal contract created by dao. - * @param proposal address to check - */ - function isProposal(address proposal) public view returns (bool) { - return _proposals[proposal] > 0; - } - - /** - * @dev Crafts a new proposal + * @dev Drafts a new proposal */ function draftProposal(string memory proposalTitle) public payable returns (address) { if (msg.value != proposalCost) revert InsufficientPayment(msg.value, proposalCost); @@ -306,6 +311,15 @@ contract OGREDAO is ActionHopper { emit ProposalExecuted(proposal); } + /** + * @dev Checks if address is a proposal contract created by dao. + * @param proposal address to check + * @return bool true if proposal is created by dao, false otherwise + */ + function isProposal(address proposal) public view returns (bool) { + return _proposals[proposal] > 0; + } + //========== Receive ========== receive() external payable {} diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 0994016..94a9d24 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -9,52 +9,37 @@ import {Structs} from "./libraries/Structs.sol"; /** * @title Open Governance Referendum Engine Proposal Contract + * @author Craig Branscom */ contract OGREProposal is Ownable { - /** - * @dev reverts if sender is not dao address - */ - modifier onlyDAO { - require(msg.sender == daoAddress, "caller must be dao"); - _; - } - - /** - * @dev reverts if past vote start period - */ - modifier onlyPreVote { - require(startTime == 0 || block.timestamp < startTime, "must be pre vote period"); - _; - } - - // modifier onlyPostVote { - // require(block.timestamp > endTime, "must be post vote period"); - // _; - // } + //========== State ========== address public immutable daoAddress; //dao whose members are allowed to cast votes on proposal // bool public flagged; //dao can flag proposals to indicate members should proceed with caution - bool public revotable; - string public proposalTitle; + bool public revotable; //allows members to change their votes during voting period + string public proposalMetadata; //metadata link to information about proposal Enums.ProposalStatus public status; //proposed, cancelled, failed, passed, executed (cancelled, failed, and executed are terminal states) - uint256 public voteCount; //number of tokens that have cast a vote uint256 public startTime; //start of vote period (unix timestamp) uint256 public endTime; //end of vote period (unix timestamp) + uint256 public voteCount; //number of tokens that have cast a vote uint256[3] public voteTotals; //[0, 0, 0] == no, yes, abstain mapping(uint256 => Structs.Vote) public votes; //token id => vote struct Structs.Action[] private actions; //actions to load (in order) if proposal passes + //========== Events ========== + /** - * @notice logs a change in proposal status. + * @notice Logs a change in proposal status. + * @param previousStatus previous status of proposal * @param newStatus new status of proposal */ - event StatusUpdated(string newStatus); + event StatusUpdated(Enums.ProposalStatus previousStatus, Enums.ProposalStatus newStatus); /** - * @notice logs a vote + * @notice Logs a vote. * @param voter address that cast the vote * @param tokenId id of nft token granting vote * @param vote direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN) @@ -62,81 +47,95 @@ contract OGREProposal is Ownable { event VoteCast(address voter, uint256 tokenId, uint8 vote); /** - * @notice logs a successful proposal evaluation + * @notice Logs a successful evaluation of proposal results. * @param quorumPassed true if proposal passed dao quorum threshold * @param supportPassed true if proposal passed dao support threshold * @param totalVotes final vote count on proposal */ - event ProposalResults(bool quorumPassed, bool supportPassed, uint256 totalVotes, uint256 quorumVotesThreshold, uint256 supportVotesThreshold); - - error InvalidStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); + event ProposalEvaluated(bool quorumPassed, bool supportPassed, uint256 totalVotes, uint256 quorumVotesThreshold, uint256 supportVotesThreshold); - constructor(string memory proposalTitle_, address daoAddress_, address owner_) Ownable(owner_) { - // require(daoAddress_ != address(0x), "daoAddress cannot be zero address"); + //========== Errors ========== - proposalTitle = proposalTitle_; - daoAddress = daoAddress_; + error InvalidAddress(string variableName, address value); + error InvalidStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); + error StartTimeInPast(); + error EndTimeBeforeStartTime(); + error InvalidVoteDuration(); - emit StatusUpdated("Proposed"); - } + //========== Constructor ========== - function getActionCount() public view returns (uint256) { - return actions.length; - } + /** + * @dev Creates proposal. + * @param proposalMetadata_ metadata link to information about proposal + * @param daoAddress_ address of dao + * @param owner_ address of owner + */ + constructor(string memory proposalMetadata_, address daoAddress_, address owner_) Ownable(owner_) { + if (daoAddress_ == address(0x0)) revert InvalidAddress("daoAddress_", daoAddress_); - function getAction(uint256 index) public view returns (Structs.Action memory) { - return actions[index]; - } + daoAddress = daoAddress_; + proposalMetadata = proposalMetadata_; - function getVote(uint256 tokenId) public view returns (uint8) { - require(votes[tokenId].voted, "token has not voted"); - return votes[tokenId].direction; + emit StatusUpdated(Enums.ProposalStatus.PROPOSED, Enums.ProposalStatus.PROPOSED); } - function hasVoted(uint256 tokenId) public view returns (bool) { - return votes[tokenId].voted; - } + //========== Modifiers ========== - function cancelProposal() public onlyOwner { - if (status != Enums.ProposalStatus.PROPOSED) revert InvalidStatus(status, Enums.ProposalStatus.PROPOSED); - status = Enums.ProposalStatus.CANCELLED; - emit StatusUpdated("Cancelled"); + /** + * @dev Reverts if sender is not dao address + */ + modifier onlyDAO { + require(msg.sender == daoAddress, "caller must be dao"); + _; } - function updateStatus(uint8 newStatus) external onlyDAO { - // require(newStatus > uint8(status), "invalid status update"); - // require(uint8(status) != 1 && uint8(status) != 2 && uint8(status) != 4, "cannot update terminal proposal status"); - // emit StatusUpdated(); - status = Enums.ProposalStatus(newStatus); + /** + * @dev Reverts if past vote start period + */ + modifier onlyPreVote { + require(startTime == 0 || block.timestamp < startTime, "must be pre vote period"); + _; } - function setActionReady(uint256 index, uint256 readyTime) external onlyDAO { - // require(getActionCount() > 0, "no actions to update"); - // require(index <= getActionCount() - 1, "no action at index"); - // require(readyTime > block.timestamp, "ready time must be in the future"); - actions[index].ready = readyTime; - } + // modifier onlyPostVote { + // require(block.timestamp > endTime, "must be post vote period"); + // _; + // } - //---------- Proposal Flow ---------- + //========== Configuration ========== /** - * @dev sets proposal title - * @param newProposalTitle new proposal title + * @dev Sets proposal metadata. + * @param newProposalMetadata new proposal metadata */ - function setProposalTitle(string memory newProposalTitle) public onlyOwner onlyPreVote { - proposalTitle = newProposalTitle; + function setProposalMetadata(string memory newProposalMetadata) public onlyOwner onlyPreVote { + proposalMetadata = newProposalMetadata; } /** - * @dev configures proposal settings + * @dev Sets whether proposal is revotable. * @param isRevotable allows revoting on proposal if true */ - function configureProposal(bool isRevotable) public onlyOwner onlyPreVote { + function setRevotable(bool isRevotable) public onlyOwner onlyPreVote { revotable = isRevotable; } /** - * @dev pushes a new action to the end of the actions queue + * @dev Sets voting start and end time + * @param newStartTime time voting will start + * @param newEndTime time voting will end + */ + function setVotingPeriod(uint256 newStartTime, uint256 newEndTime) public onlyOwner onlyPreVote { + if (newStartTime < block.timestamp) revert StartTimeInPast(); + if (newEndTime <= newStartTime) revert EndTimeBeforeStartTime(); + if (newEndTime - newStartTime < IOGREDAO(daoAddress).minVoteDuration()) revert InvalidVoteDuration(); + + startTime = newStartTime; + endTime = newEndTime; + } + + /** + * @dev Pushes a new action to the end of the actions queue */ function addAction(address target, uint256 value, string memory sig, bytes memory data) public onlyOwner onlyPreVote { //ready is set as zero when added, gets ready time set when loaded into action hopper @@ -145,23 +144,64 @@ contract OGREProposal is Ownable { } /** - * @dev removes action at end of action queue + * @dev Removes action at end of action queue */ function removeAction() public onlyOwner onlyPreVote { actions.pop(); } /** - * @dev sets voting start and end time - * @param newStartTime time voting will start - * @param newEndTime time voting will end + * @dev Returns number of actions in proposal. + * @return uint256 of actions in proposal */ - function setVotingPeriod(uint256 newStartTime, uint256 newEndTime) public onlyOwner onlyPreVote { - require(newStartTime >= block.timestamp, "start time must be in the future"); - require(newEndTime > newStartTime, "end time must be after start time"); + function getActionCount() public view returns (uint256) { + return actions.length; + } - startTime = newStartTime; - endTime = newEndTime; + /** + * @dev Returns action at index. + * @param index index of action + * @return Action action at index + */ + function getAction(uint256 index) public view returns (Structs.Action memory) { + return actions[index]; + } + + //========== Voting ========== + + /** + * @dev Returns vote for token id. + * @param tokenId id of token + * @return Vote vote for token id + */ + function getVote(uint256 tokenId) public view returns (Structs.Vote memory) { + return votes[tokenId]; + } + + //========== Proposal Lifecycle ========== + + /** + * @dev Cancels proposal. + */ + function cancelProposal() public onlyOwner { + if (status != Enums.ProposalStatus.PROPOSED) revert InvalidStatus(status, Enums.ProposalStatus.PROPOSED); + _updateStatus(Enums.ProposalStatus.CANCELLED); + } + + function setActionReady(uint256 index, uint256 readyTime) external onlyDAO { + // require(getActionCount() > 0, "no actions to update"); + // require(index <= getActionCount() - 1, "no action at index"); + // require(readyTime > block.timestamp, "ready time must be in the future"); + actions[index].ready = readyTime; + } + + /** + * @dev Updates proposal status. + * @param newStatus new status of proposal + */ + function _updateStatus(Enums.ProposalStatus newStatus) internal { + emit StatusUpdated(status, newStatus); + status = newStatus; } /** diff --git a/src/abstract/ActionHopper.sol b/src/abstract/ActionHopper.sol index 285811b..97ac397 100644 --- a/src/abstract/ActionHopper.sol +++ b/src/abstract/ActionHopper.sol @@ -6,8 +6,12 @@ pragma solidity ^0.8.20; */ abstract contract ActionHopper { + //========== State ========== + uint256 public delay; //seconds that must elapse after action is loaded to be considered ready mapping(bytes32 => bool) public loadedActions; + + //========== Events ========== /** * @dev logs an action being loaded into hopper @@ -42,6 +46,8 @@ abstract contract ActionHopper { */ event ActionExecuted(bytes32 trxHash, address target, uint256 value, string sig, bytes data, uint256 ready); + //========== Errors ========== + /** * @dev throws if an action is not ready when attempting to execute * @param trxHash hash of target + value + sig + data + ready @@ -62,6 +68,8 @@ abstract contract ActionHopper { * @param returnData data returned from call */ error ActionExecutionFailed(bytes32 trxHash, bytes returnData); + + //========== Constructor ========== constructor(uint256 delay_) { delay = delay_; diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index f922b09..ab81ef4 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -5,15 +5,13 @@ pragma solidity ^0.8.20; * @notice OGRE DAO interface definition */ interface IOGREDAO { + function parentDAO() external view returns (address); function proposalFactoryAddress() external view returns (address); function nftAddress() external view returns (address); - function daoName() external view returns (string memory); - function daoMetadata() external view returns (string memory); - function quorumThreshold() external view returns (uint256); function supportThreshold() external view returns (uint256); - function minVotePeriod() external view returns (uint256); + function minVoteDuration() external view returns (uint256); function memberCount() external view returns (uint256); function getMemberStatus(uint256 tokenId) external view returns (uint256); @@ -21,10 +19,8 @@ interface IOGREDAO { function proposalCount() external view returns (uint256); function proposals(uint256) external view returns (address); function isProposal(address proposal) external view returns (bool); - - function setDAOName(string memory newDAOName) external; - function setDAOMetadata(string memory newDAOMetadata) external; + function setQuorumThreshold(uint256 newQuorumThreshold) external; function setSupportThreshold(uint256 newSupportThreshold) external; - function setMinVotePeriod(uint256 newMinVotePeriod) external; + function setMinVoteDuration(uint256 newMinVoteDuration) external; } \ No newline at end of file From bf0e77e9f784842eb1a66fec96e44719fbdafc3d Mon Sep 17 00:00:00 2001 From: Craig Date: Sun, 20 Apr 2025 21:28:57 -0400 Subject: [PATCH 13/20] type updates --- src/OGREProposal.sol | 81 ++++++++++++++++++------------------- src/interfaces/IOGREDAO.sol | 4 +- src/libraries/Enums.sol | 11 +++++ src/libraries/Structs.sol | 2 +- 4 files changed, 55 insertions(+), 43 deletions(-) diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 94a9d24..e7dcc31 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./interfaces/IOGREDAO.sol"; - import {Enums} from "./libraries/Enums.sol"; import {Structs} from "./libraries/Structs.sol"; @@ -17,7 +17,6 @@ contract OGREProposal is Ownable { address public immutable daoAddress; //dao whose members are allowed to cast votes on proposal - // bool public flagged; //dao can flag proposals to indicate members should proceed with caution bool public revotable; //allows members to change their votes during voting period string public proposalMetadata; //metadata link to information about proposal @@ -44,7 +43,7 @@ contract OGREProposal is Ownable { * @param tokenId id of nft token granting vote * @param vote direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN) */ - event VoteCast(address voter, uint256 tokenId, uint8 vote); + event VoteCast(address voter, uint256 tokenId, Enums.VoteDirection vote); /** * @notice Logs a successful evaluation of proposal results. @@ -57,7 +56,10 @@ contract OGREProposal is Ownable { //========== Errors ========== error InvalidAddress(string variableName, address value); - error InvalidStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); + error InvalidProposalStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); + error InvalidMemberStatus(Enums.MemberStatus currentStatus, Enums.MemberStatus requiredStatus); + error InvalidVoteDirection(Enums.VoteDirection vote); + error InvalidTokenOwner(uint256 tokenId, address owner); error StartTimeInPast(); error EndTimeBeforeStartTime(); error InvalidVoteDuration(); @@ -97,11 +99,6 @@ contract OGREProposal is Ownable { _; } - // modifier onlyPostVote { - // require(block.timestamp > endTime, "must be post vote period"); - // _; - // } - //========== Configuration ========== /** @@ -169,6 +166,39 @@ contract OGREProposal is Ownable { //========== Voting ========== + /** + * @dev casts a vote + * @param tokenId id of token casting votes + * @param vote number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN) + */ + function castVote(uint256 tokenId, Enums.VoteDirection vote) public { + //validate + if (status != Enums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, Enums.ProposalStatus.PROPOSED); + if (IOGREDAO(daoAddress).getMemberStatus(tokenId) != Enums.MemberStatus.REGISTERED) { + revert InvalidMemberStatus(IOGREDAO(daoAddress).getMemberStatus(tokenId), Enums.MemberStatus.REGISTERED); + } + if (IERC721(daoAddress).ownerOf(tokenId) != msg.sender) revert InvalidTokenOwner(tokenId, msg.sender); + if (vote > Enums.VoteDirection(2)) revert InvalidVoteDirection(vote); + require(block.timestamp >= startTime, "must be after start time"); + require(block.timestamp <= endTime, "must be before end time"); + + //existing vote not found + uint8 voteDirectionIdx = uint8(vote); + if (!votes[tokenId].voted) { + voteCount += 1; + voteTotals[voteDirectionIdx] += 1; + } else { //existing vote found + require(revotable, "proposal is not revotable"); + voteTotals[uint8(votes[tokenId].direction)] -= 1; //undo previous vote + voteTotals[voteDirectionIdx] += 1; //apply new vote + } + + votes[tokenId].direction = vote; + votes[tokenId].voted = true; + + emit VoteCast(msg.sender, tokenId, vote); + } + /** * @dev Returns vote for token id. * @param tokenId id of token @@ -184,7 +214,7 @@ contract OGREProposal is Ownable { * @dev Cancels proposal. */ function cancelProposal() public onlyOwner { - if (status != Enums.ProposalStatus.PROPOSED) revert InvalidStatus(status, Enums.ProposalStatus.PROPOSED); + if (status != Enums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, Enums.ProposalStatus.PROPOSED); _updateStatus(Enums.ProposalStatus.CANCELLED); } @@ -204,35 +234,4 @@ contract OGREProposal is Ownable { status = newStatus; } - /** - * @dev casts a vote - * @param tokenId id of token casting votes - * @param vote number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN) - */ - function castVote(uint256 tokenId, uint8 vote) public { - //validate - //TODO: check dao membership? - // require(IOGREDAO(daoAddress).getMemberStatus() == 1, "member is not registered"); - require(status == Enums.ProposalStatus.PROPOSED, "invalid state"); - // require(IOGREDAO(daoAddress).isTokenOwner(tokenId, msg.sender), "caller not token owner"); - require(vote <= 2, "vote must be either NO (0), YES (1), or ABSTAIN (2)"); - require(block.timestamp >= startTime, "must be after start time"); - require(block.timestamp <= endTime, "must be before end time"); - - //existing vote not found - if (!votes[tokenId].voted) { - voteCount += 1; - voteTotals[vote] += 1; - } else { //existing vote found - require(revotable, "proposal is not revotable"); - voteTotals[votes[tokenId].direction] -= 1; //undo previous vote - voteTotals[vote] += 1; //apply new vote - } - - votes[tokenId].direction = vote; - votes[tokenId].voted = true; - - emit VoteCast(msg.sender, tokenId, vote); - } - } \ No newline at end of file diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index ab81ef4..fca2021 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; +import {Enums} from "../libraries/Enums.sol"; + /** * @notice OGRE DAO interface definition */ @@ -14,7 +16,7 @@ interface IOGREDAO { function minVoteDuration() external view returns (uint256); function memberCount() external view returns (uint256); - function getMemberStatus(uint256 tokenId) external view returns (uint256); + function getMemberStatus(uint256 tokenId) external view returns (Enums.MemberStatus); function proposalCount() external view returns (uint256); function proposals(uint256) external view returns (address); diff --git a/src/libraries/Enums.sol b/src/libraries/Enums.sol index 4519d07..c5c5d5e 100644 --- a/src/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -19,6 +19,17 @@ library Enums { EXECUTED } + /** + * NO: + * YES: + * ABSTAIN: + */ + enum VoteDirection { + NO, + YES, + ABSTAIN + } + /** * UNREGISTERED: member has not registered, or elected to unregister after previously being registered * REGISTERED: member is registered diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index 20916d1..e484e11 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -14,7 +14,7 @@ library Structs { } struct Vote { - uint8 direction; + Enums.VoteDirection direction; bool voted; } From 02fd279cebe21cc7916e08bf5b0343e077f13612 Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 2 May 2025 23:06:45 -0400 Subject: [PATCH 14/20] OGREDAO initialization --- src/OGREDAO.sol | 116 +++++++++++++++---------------- src/OGREProposal.sol | 3 +- src/factories/OGREDAOFactory.sol | 39 ++++++++++- src/libraries/Structs.sol | 24 +++++++ test/OGREDAO.t.sol | 23 ++++-- 5 files changed, 137 insertions(+), 68 deletions(-) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 8571bbc..8cdb41e 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -9,7 +9,7 @@ import "./abstract/ActionHopper.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; -import {Structs} from "./libraries/Structs.sol"; +import {Structs, OGREDAOStructs} from "./libraries/Structs.sol"; /** * @title Open Governance Referendum Engine DAO Contract @@ -24,16 +24,20 @@ contract OGREDAO is ActionHopper { //========== State ========== - address public immutable parentDAO; //address of parent dao + uint32 public constant PERCENTAGE_RESOLUTION = 10000; //10000 = 100.00% + + address public immutable parentDAO; //address of parent dao. zero address indicates top level dao address public immutable proposalFactoryAddress; //address of proposal factory used by dao - address public immutable nftAddress; //ERC721 contract tracking member voting rights + address public immutable nftAddress; //ERC721 contract tracking member voting eligibility uint256 public quorumThreshold; //minimum percentage of total members (nft tokens) participation needed to recognize a proposal (e.g. 555 = 5.55%) uint256 public supportThreshold; //minimum percentage of YES votes required to pass proposal (e.g. 6700 = 67.00%) uint256 public minVoteDuration; //min length of time (in seconds) that a proposal must be open for a vote - uint256 public memberCount; //number of invited nfts from set that have been registered to the dao. this number is reduced if token is unregistered or banned + uint256 public memberCount; //number of invited nfts from set that have been registered to the dao mapping(uint256 => Enums.MemberStatus) private _members; //token id => member status + mapping(uint256 => bool) public memberAllowlist; //token id => isAllowed + bool public allowListEnabled; //if true, only members in the allowlist can register uint256 public proposalCount; //number of proposals that have been created by the dao mapping(uint256 => address) public proposals; //proposal[i] => proposal address @@ -53,24 +57,17 @@ contract OGREDAO is ActionHopper { /** * @notice Logs a successful member registration * @param tokenId id of nft token being registered to dao - * @param memberAddress address registering token - */ - event MemberRegistered(uint256 indexed tokenId, address indexed memberAddress); - - /** - * @notice Logs a successful member unregistration - * @param tokenId id of nft token being unregistered - * @param memberAddress address unregistering token + * @param registeredBy address registering token */ - event MemberUnregistered(uint256 indexed tokenId, address indexed memberAddress); + event MemberRegistered(uint256 indexed tokenId, address indexed registeredBy); /** * @notice Logs a proposal creation * @param proposal address of proposal contract * @param proposalId unique proposal id assigned by dao - * @param creator address of proposal creator + * @param createdBy proposal creator */ - event ProposalCreated(address proposal, uint256 proposalId, address creator); + event ProposalCreated(address proposal, uint256 proposalId, address indexed createdBy); /** * @notice Logs a successful proposal evaluation @@ -78,7 +75,7 @@ contract OGREDAO is ActionHopper { * @param supportPassed true if proposal passed dao support threshold * @param totalVotes final vote count on proposal */ - event ProposalEvaluated(bool quorumPassed, bool supportPassed, uint256 totalVotes, uint256 quorumVotesThreshold, uint256 supportVotesThreshold); + event ProposalEvaluated(bool indexed quorumPassed, bool indexed supportPassed, uint256 totalVotes, uint256 quorumVotesThreshold, uint256 supportVotesThreshold); /** * @notice Logs successful execution of all proposal actions @@ -105,33 +102,44 @@ contract OGREDAO is ActionHopper { /** * @notice Creates a new OGREDAO - * @param parentDAO_ address of parent dao - * @param nftAddress_ address of ERC721 contract representing membership - * @param proposalFactoryAddress_ address of OGREProposalFactory contract - * @param proposalCost_ required cost to draft a proposal (in wei) - * @param delay_ amount of time that must elapse before a loaded action can be executed (in seconds) + * @param _params_ OGREDAO constructor parameters */ constructor( - address parentDAO_, - address nftAddress_, - address proposalFactoryAddress_, - uint256 proposalCost_, - uint256 delay_ - ) ActionHopper(delay_) { + OGREDAOStructs.ConstructorParams memory _params_ + ) ActionHopper(_params_.delay) { // validate - if (parentDAO_ != address(0x0)) { - if (msg.sender != parentDAO_) revert InvalidSender(msg.sender, parentDAO_); + if (_params_.parentDAO != address(0x0)) { + if (msg.sender != _params_.parentDAO) revert InvalidSender(msg.sender, _params_.parentDAO); } - if (nftAddress_ == address(0x0)) revert InvalidAddress("nftAddress_", nftAddress_); - if (proposalFactoryAddress_ == address(0x0)) revert InvalidAddress("proposalFactoryAddress_", proposalFactoryAddress_); + if (_params_.nftAddress == address(0x0)) revert InvalidAddress("nftAddress", _params_.nftAddress); + if (_params_.proposalFactoryAddress == address(0x0)) revert InvalidAddress("proposalFactoryAddress", _params_.proposalFactoryAddress); // initialize - parentDAO = parentDAO_; - nftAddress = nftAddress_; - proposalFactoryAddress = proposalFactoryAddress_; - proposalCost = proposalCost_; + parentDAO = _params_.parentDAO; + nftAddress = _params_.nftAddress; + proposalFactoryAddress = _params_.proposalFactoryAddress; + proposalCost = _params_.proposalCost; + proposalCostToken = _params_.proposalCostToken; + quorumThreshold = _params_.quorumThreshold; + supportThreshold = _params_.supportThreshold; + minVoteDuration = _params_.minVoteDuration; + + //enable allowlist if provided + if (_params_.allowList.length > 0) { + allowListEnabled = true; + for (uint256 i = 0; i < _params_.allowList.length; i++) { + memberAllowlist[_params_.allowList[i]] = true; + } + } + + //register initial members if provided + if (_params_.initialMembers.length > 0) { + for (uint256 i = 0; i < _params_.initialMembers.length; i++) { + _registerMember(_params_.initialMembers[i]); + } + } - emit DAOCreated(parentDAO_, nftAddress_, proposalFactoryAddress_); + emit DAOCreated(_params_.parentDAO, _params_.nftAddress, _params_.proposalFactoryAddress); } //========== Configuration ========== @@ -141,7 +149,7 @@ contract OGREDAO is ActionHopper { * @param newQuorumThreshold quorum percentage (e.g. 555 = 5.55%) */ function setQuorumThreshold(uint256 newQuorumThreshold) public { - if (newQuorumThreshold > 10000) revert InvalidThreshold(newQuorumThreshold); + if (newQuorumThreshold > PERCENTAGE_RESOLUTION) revert InvalidThreshold(newQuorumThreshold); if (newQuorumThreshold == 0) revert InvalidThreshold(newQuorumThreshold); quorumThreshold = newQuorumThreshold; @@ -152,7 +160,7 @@ contract OGREDAO is ActionHopper { * @param newSupportThreshold support percentage (e.g. 555 = 5.55%) */ function setSupportThreshold(uint256 newSupportThreshold) public { - if (newSupportThreshold > 10000) revert InvalidThreshold(newSupportThreshold); + if (newSupportThreshold > PERCENTAGE_RESOLUTION) revert InvalidThreshold(newSupportThreshold); if (newSupportThreshold == 0) revert InvalidThreshold(newSupportThreshold); supportThreshold = newSupportThreshold; @@ -185,24 +193,7 @@ contract OGREDAO is ActionHopper { if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidSender(msg.sender, IERC721(nftAddress).ownerOf(tokenId)); if (_members[tokenId] == Enums.MemberStatus.REGISTERED) revert TokenAlreadyRegistered(); - _members[tokenId] = Enums.MemberStatus.REGISTERED; - memberCount += 1; - - emit MemberRegistered(tokenId, msg.sender); - } - - /** - * @dev Unregisters a member from the dao - * @param tokenId id of nft token being unregistered from dao - */ - function unregisterMember(uint256 tokenId) public { - if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidSender(msg.sender, IERC721(nftAddress).ownerOf(tokenId)); - if (_members[tokenId] == Enums.MemberStatus.UNREGISTERED) revert TokenAlreadyUnregistered(); - - _members[tokenId] = Enums.MemberStatus.UNREGISTERED; - memberCount -= 1; - - emit MemberUnregistered(tokenId, msg.sender); + _registerMember(tokenId); } /** @@ -253,8 +244,8 @@ contract OGREDAO is ActionHopper { uint256 abstainVotes = IOGREProposal(proposal).voteTotals(2); uint256 totalVotes = noVotes + yesVotes + abstainVotes; - uint256 quorumVotesThreshold = (memberCount * quorumThreshold) / 10000; - uint256 supportVotesThreshold = (memberCount * supportThreshold) / 10000; + uint256 quorumVotesThreshold = (memberCount * quorumThreshold) / PERCENTAGE_RESOLUTION; + uint256 supportVotesThreshold = (memberCount * supportThreshold) / PERCENTAGE_RESOLUTION; bool supportPassed = false; bool quorumPassed = false; @@ -320,6 +311,15 @@ contract OGREDAO is ActionHopper { return _proposals[proposal] > 0; } + //========== Internal ========== + + function _registerMember(uint256 tokenId) internal { + _members[tokenId] = Enums.MemberStatus.REGISTERED; + memberCount += 1; + + emit MemberRegistered(tokenId, msg.sender); + } + //========== Receive ========== receive() external payable {} diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index e7dcc31..629dfc9 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -63,6 +63,7 @@ contract OGREProposal is Ownable { error StartTimeInPast(); error EndTimeBeforeStartTime(); error InvalidVoteDuration(); + error NotRevotable(); //========== Constructor ========== @@ -188,7 +189,7 @@ contract OGREProposal is Ownable { voteCount += 1; voteTotals[voteDirectionIdx] += 1; } else { //existing vote found - require(revotable, "proposal is not revotable"); + if (!revotable) revert NotRevotable(); voteTotals[uint8(votes[tokenId].direction)] -= 1; //undo previous vote voteTotals[voteDirectionIdx] += 1; //apply new vote } diff --git a/src/factories/OGREDAOFactory.sol b/src/factories/OGREDAOFactory.sol index 608d897..9a593c2 100644 --- a/src/factories/OGREDAOFactory.sol +++ b/src/factories/OGREDAOFactory.sol @@ -3,17 +3,52 @@ pragma solidity ^0.8.20; import "../abstract/OGREFactory.sol"; import "../OGREDAO.sol"; +import {OGREDAOStructs} from "../libraries/Structs.sol"; contract OGREDAOFactory is OGREFactory { + /** + * @notice Produces a new OGREDAO + * @param parentDAO address of parent DAO + * @param nft address of nft contract + * @param proposalFactory address of proposal factory + * @param proposalCost cost of proposal + * @param proposalCostToken address of proposal cost token + * @param quorumThreshold quorum threshold + * @param supportThreshold support threshold + * @param minVoteDuration minimum vote duration + * @param delay delay + * @param allowList allow list + * @param initialMembers initial members + * @return address of new OGREDAO + */ function produceOGREDAO( address parentDAO, address nft, address proposalFactory, uint256 proposalCost, - uint256 delay + address proposalCostToken, + uint256 quorumThreshold, + uint256 supportThreshold, + uint256 minVoteDuration, + uint256 delay, + uint256[] memory allowList, + uint256[] memory initialMembers ) public returns (address) { - OGREDAO dao = new OGREDAO(parentDAO, nft, proposalFactory, proposalCost, delay); + OGREDAOStructs.ConstructorParams memory params = OGREDAOStructs.ConstructorParams({ + parentDAO: parentDAO, + nftAddress: nft, + proposalFactoryAddress: proposalFactory, + proposalCost: proposalCost, + proposalCostToken: proposalCostToken, + quorumThreshold: quorumThreshold, + supportThreshold: supportThreshold, + minVoteDuration: minVoteDuration, + delay: delay, + allowList: allowList, + initialMembers: initialMembers + }); + OGREDAO dao = new OGREDAO(params); productionCount += 1; emit ContractProduced(address(dao), msg.sender); return address(dao); diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index e484e11..101561f 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -3,6 +3,30 @@ pragma solidity ^0.8.20; import {Enums} from "./Enums.sol"; +library OGREDAOStructs { + struct ConstructorParams { + address parentDAO; + address nftAddress; + address proposalFactoryAddress; + uint256 proposalCost; + address proposalCostToken; + uint256 quorumThreshold; + uint256 supportThreshold; + uint256 minVoteDuration; + uint256 delay; + uint256[] allowList; + uint256[] initialMembers; + } +} + +library OGREMarketStructs { + struct ConstructorParams { + address daoAddress; + } + + +} + library Structs { struct Action { diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index c986986..2afae9f 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -6,6 +6,7 @@ import "../src/OGREDAO.sol"; import "../src/samples/SampleERC721.sol"; import "../src/OGREProposal.sol"; import "../src/factories/OGREProposalFactory.sol"; +import {OGREDAOStructs} from "../src/libraries/Structs.sol"; contract OGREDAOTest is Test { // Signers @@ -29,6 +30,8 @@ contract OGREDAOTest is Test { uint256 proposalCost = 0; bytes32 daoAdminRole = keccak256("DAO_ADMIN"); bytes32 daoInviteRole = keccak256("DAO_INVITE"); + uint256[] allowList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + uint256[] initialMembers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // OGRE Proposal string proposalTitle = "Test Proposal"; @@ -49,13 +52,19 @@ contract OGREDAOTest is Test { // Deploy contracts proposalFactoryContract = new OGREProposalFactory(); nftContract = new SampleERC721(name, symbol); - daoContract = new OGREDAO( - address(0x0), - address(nftContract), - address(proposalFactoryContract), - proposalCost, - delay - ); + daoContract = new OGREDAO(OGREDAOStructs.ConstructorParams({ + parentDAO: address(0x0), + nftAddress: address(nftContract), + proposalFactoryAddress: address(proposalFactoryContract), + proposalCost: proposalCost, + proposalCostToken: address(0x0), + quorumThreshold: quorumThresh, + supportThreshold: supportThresh, + minVoteDuration: minVotePeriod, + delay: delay, + allowList: allowList, + initialMembers: initialMembers + })); // Mint NFTs to userA for (uint256 i = 0; i < 10; i++) { From 24ffccac07ed2543833e6232f2b48eb929ef65df Mon Sep 17 00:00:00 2001 From: Craig Date: Fri, 2 May 2025 23:54:07 -0400 Subject: [PATCH 15/20] ogredao tests --- test/OGREDAO.t.sol | 137 +++++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 68 deletions(-) diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index 2afae9f..c5db235 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -9,15 +9,15 @@ import "../src/factories/OGREProposalFactory.sol"; import {OGREDAOStructs} from "../src/libraries/Structs.sol"; contract OGREDAOTest is Test { - // Signers - address userA; - address userB; - address userC; + // Accounts + address user0; + address user1; + address user2; // ERC721 string name = "Test NFTs"; string symbol = "TEST"; - uint256 maxSupply = 100; + uint256 maxSupply = 10; address owner; // OGRE DAO @@ -27,11 +27,10 @@ contract OGREDAOTest is Test { uint256 quorumThresh = 5000; // 50% uint256 supportThresh = 6000; // 60% uint256 minVotePeriod = 300; // 5 mins - uint256 proposalCost = 0; - bytes32 daoAdminRole = keccak256("DAO_ADMIN"); - bytes32 daoInviteRole = keccak256("DAO_INVITE"); - uint256[] allowList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; - uint256[] initialMembers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + uint256 proposalCost = 0; // free proposals + address proposalCostToken = address(0x0); //native token + uint256[] allowList; + uint256[] initialMembers; // OGRE Proposal string proposalTitle = "Test Proposal"; @@ -45,9 +44,9 @@ contract OGREDAOTest is Test { function setUp() public { // Get signers - userA = makeAddr("userA"); - userB = makeAddr("userB"); - userC = makeAddr("userC"); + user0 = makeAddr("user0"); + user1 = makeAddr("user1"); + user2 = makeAddr("user2"); // Deploy contracts proposalFactoryContract = new OGREProposalFactory(); @@ -66,75 +65,77 @@ contract OGREDAOTest is Test { initialMembers: initialMembers })); - // Mint NFTs to userA + // Mint NFTs to user0 for (uint256 i = 0; i < 10; i++) { - nftContract.mint(userA, i); + nftContract.mint(user0, i); } } + // ========== Configuration Tests ========== + function test_DeployOGREDAO() public view { assertEq(daoContract.nftAddress(), address(nftContract)); assertEq(daoContract.proposalFactoryAddress(), address(proposalFactoryContract)); assertEq(daoContract.delay(), delay); - // assertTrue(daoContract.hasRole(daoAdminRole, userA)); - // assertFalse(daoContract.hasRole(daoAdminRole, userB)); + // assertTrue(daoContract.hasRole(daoAdminRole, user0)); + // assertFalse(daoContract.hasRole(daoAdminRole, user1)); // assertEq(daoContract.getRoleAdmin(daoInviteRole), daoAdminRole); } - // function testSetNewDAOName() public { - // string memory newName = "Test DAO 2.0"; - // daoContract.setDAOName(newName); - // assertEq(daoContract.daoName(), newName); - // } + function test_SetNewQuorumThreshold() public { + uint256 newQuorumThresh = 7000; // 70% + daoContract.setQuorumThreshold(newQuorumThresh); + assertEq(daoContract.quorumThreshold(), newQuorumThresh); + } - // function testSetNewQuorumThreshold() public { - // daoContract.setQuorumThreshold(quorumThresh); - // assertEq(daoContract.quorumThreshold(), quorumThresh); - // } + function test_SetNewSupportThreshold() public { + uint256 newSupportThresh = 7000; // 70% + daoContract.setSupportThreshold(newSupportThresh); + assertEq(daoContract.supportThreshold(), newSupportThresh); + } - // function testSetNewSupportThreshold() public { - // daoContract.setSupportThreshold(supportThresh); - // assertEq(daoContract.supportThreshold(), supportThresh); - // } + function test_SetNewMinVoteDuration() public { + uint256 newVoteDuration = 400; // 4 mins + daoContract.setMinVoteDuration(newVoteDuration); + assertEq(daoContract.minVoteDuration(), newVoteDuration); + } - // function testSetNewMinVotePeriod() public { - // daoContract.setMinVotePeriod(minVotePeriod); - // assertEq(daoContract.minVotePeriod(), minVotePeriod); - // } + function test_SetNewActionDelay() public { + uint256 newDelay = 20; // 20 seconds + daoContract.setActionDelay(newDelay); + assertEq(daoContract.delay(), newDelay); + } - // function testCheckTokenOwnership() public { - // uint256 tokenId = 0; - // assertTrue(daoContract.isTokenOwner(tokenId, userA)); - // assertFalse(daoContract.isTokenOwner(tokenId, userB)); - // } + // ========== Membership Tests ========== - // function testRegisterNewMember() public { - // uint256 tokenId = 0; - // uint256 memberCount = daoContract.memberCount(); - // uint256 memberStatus = uint256(daoContract.getMemberStatus(tokenId)); + function test_RegisterNewMember() public { + uint256 tokenId = 0; + uint256 preMemberCount = daoContract.memberCount(); + uint256 preMemberStatus = uint256(daoContract.getMemberStatus(tokenId)); - // assertEq(memberStatus, 0); + assertEq(preMemberStatus, 0); - // vm.prank(userA); - // daoContract.registerMember(tokenId); + vm.prank(user0); + daoContract.registerMember(tokenId); - // assertEq(daoContract.memberCount(), memberCount + 1); - // assertEq(uint256(daoContract.getMemberStatus(tokenId)), 2); - // } + assertEq(daoContract.memberCount(), preMemberCount + 1); + assertEq(uint256(daoContract.getMemberStatus(tokenId)), 1); + } - // function test_RevertIf_MemberAlreadyRegistered() public { - // uint256 tokenId = 0; - // vm.prank(userA); - // daoContract.registerMember(tokenId); - // vm.prank(userA); - // daoContract.registerMember(tokenId); - // } + function test_RevertIf_MemberAlreadyRegistered() public { + uint256 tokenId = 0; + vm.prank(user0); + daoContract.registerMember(tokenId); + vm.prank(user0); + vm.expectRevert(abi.encodeWithSelector(OGREDAO.TokenAlreadyRegistered.selector)); + daoContract.registerMember(tokenId); + } // function testDraftAndSetupProposal() public { // uint256 propCount = daoContract.proposalCount(); - // vm.prank(userA); + // vm.prank(user0); // address propAddress = daoContract.draftProposal(proposalTitle); // assertEq(daoContract.proposalCount(), propCount + 1); @@ -142,7 +143,7 @@ contract OGREDAOTest is Test { // // Register remaining members // for (uint256 i = 1; i < 10; i++) { - // vm.prank(userA); + // vm.prank(user0); // daoContract.registerMember(i); // } @@ -151,24 +152,24 @@ contract OGREDAOTest is Test { // // Add action to proposalContract // proposalContract = OGREProposal(propAddress); - // address target = userA; + // address target = user0; // uint256 value = 1; // string memory sig = ""; // bytes memory data = ""; - // vm.prank(userA); + // vm.prank(user0); // proposalContract.addAction(target, value, sig, data); // // Set vote period // startTime = block.timestamp + 1; // endTime = startTime + 300; - // vm.prank(userA); + // vm.prank(user0); // proposalContract.setVotingPeriod(startTime, endTime); // // Cast votes on proposalContract // for (uint256 i = 0; i < 10; i++) { - // vm.prank(userA); + // vm.prank(user0); // proposalContract.castVote(i, 1); // yes vote // } @@ -177,28 +178,28 @@ contract OGREDAOTest is Test { // } // function testCheckProposalAddress() public { - // vm.prank(userA); + // vm.prank(user0); // address propAddress = daoContract.draftProposal(proposalTitle); // assertTrue(daoContract.isProposal(propAddress)); - // assertFalse(daoContract.isProposal(userA)); + // assertFalse(daoContract.isProposal(user0)); // } // function testEvaluateProposalPassed() public { - // vm.prank(userA); + // vm.prank(user0); // address propAddress = daoContract.draftProposal(proposalTitle); // proposalContract = OGREProposal(propAddress); // // Setup proposalContract (similar to testDraftAndSetupProposal) // // ... (omitted for brevity, but should include the same setup) - // vm.prank(userA); + // vm.prank(user0); // bool passed = daoContract.evaluateProposal(propAddress); // assertTrue(passed); // assertEq(uint256(proposalContract.status()), 3); // passed // } // function testExecuteProposal() public { - // vm.prank(userA); + // vm.prank(user0); // address propAddress = daoContract.draftProposal(proposalTitle); // proposalContract = OGREProposal(propAddress); @@ -208,7 +209,7 @@ contract OGREDAOTest is Test { // // Wait until ready time // vm.warp(block.timestamp + delay + 1); - // vm.prank(userA); + // vm.prank(user0); // daoContract.executeProposal(propAddress); // assertEq(uint256(proposalContract.status()), 4); // executed From a6ddcf0edea9c7283cff925d72ef19f6f1d030e5 Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 3 May 2025 00:58:15 -0400 Subject: [PATCH 16/20] refactor libraries --- src/OGREDAO.sol | 20 +++++++++---- src/OGREMarket.sol | 6 ++-- src/OGREProposal.sol | 32 ++++++++++++--------- src/factories/OGREProposalFactory.sol | 15 ++++++++-- src/interfaces/IOGREProposal.sol | 4 +-- src/libraries/Structs.sol | 41 +++++++++++++++------------ test/OGREDAO.t.sol | 36 +++++++++++++++++++---- 7 files changed, 104 insertions(+), 50 deletions(-) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 8cdb41e..4ecc2f4 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -9,7 +9,7 @@ import "./abstract/ActionHopper.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; -import {Structs, OGREDAOStructs} from "./libraries/Structs.sol"; +import {OGREDAOStructs, ActionHopperStructs} from "./libraries/Structs.sol"; /** * @title Open Governance Referendum Engine DAO Contract @@ -93,7 +93,7 @@ contract OGREDAO is ActionHopper { error TokenAlreadyRegistered(); error TokenAlreadyUnregistered(); error InsufficientPayment(uint256 provided, uint256 required); - error NotProposal(); + error ProposalNotRecognized(); error InvalidProposalState(); error VotePeriodNotEnded(); error NoActionsToExecute(); @@ -174,6 +174,14 @@ contract OGREDAO is ActionHopper { minVoteDuration = newMinVoteDuration; } + /** + * @dev Sets new proposal cost for dao + * @param newProposalCost new proposal cost in wei + */ + function setProposalCost(uint256 newProposalCost) public { + proposalCost = newProposalCost; + } + /** * @dev Sets a new delay for action hopper * @param newDelay new delay value (in seconds) @@ -234,7 +242,7 @@ contract OGREDAO is ActionHopper { * @return bool true if proposal passed, false if failed */ function evaluateProposal(address proposal) public returns (bool) { - if (!isProposal(proposal)) revert NotProposal(); + if (!isProposal(proposal)) revert ProposalNotRecognized(); if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PROPOSED) revert InvalidProposalState(); if (IOGREProposal(proposal).startTime() == 0) revert InvalidProposalState(); if (block.timestamp <= IOGREProposal(proposal).endTime()) revert VotePeriodNotEnded(); @@ -267,7 +275,7 @@ contract OGREDAO is ActionHopper { //load actions into hopper uint256 actionCount = IOGREProposal(proposal).getActionCount(); for (uint8 i = 0; i < actionCount; i++) { - Structs.Action memory act = IOGREProposal(proposal).getAction(i); + ActionHopperStructs.Action memory act = IOGREProposal(proposal).getAction(i); act.ready = _loadAction(act.target, act.value, act.sig, act.data); IOGREProposal(proposal).setActionReady(i, act.ready); } @@ -285,7 +293,7 @@ contract OGREDAO is ActionHopper { * @dev Executes readied actions */ function executeProposal(address proposal) public { - if (!isProposal(proposal)) revert NotProposal(); + if (!isProposal(proposal)) revert ProposalNotRecognized(); if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PASSED) revert InvalidProposalState(); if (IOGREProposal(proposal).getActionCount() == 0) revert NoActionsToExecute(); @@ -295,7 +303,7 @@ contract OGREDAO is ActionHopper { //execute readied actions uint256 actionCount = IOGREProposal(proposal).getActionCount(); for (uint8 i = 0; i < actionCount; i++) { - Structs.Action memory act = IOGREProposal(proposal).getAction(i); + ActionHopperStructs.Action memory act = IOGREProposal(proposal).getAction(i); _executeAction(act.target, act.value, act.sig, act.data, act.ready); } diff --git a/src/OGREMarket.sol b/src/OGREMarket.sol index 7aac02a..96d82bd 100644 --- a/src/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -8,7 +8,7 @@ import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Constants} from "./libraries/Constants.sol"; import {Enums} from "./libraries/Enums.sol"; -import {Structs} from "./libraries/Structs.sol"; +import {OGREMarketStructs} from "./libraries/Structs.sol"; //TODO: add order expiration //TODO: add order recipient @@ -27,7 +27,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { mapping(address => bool) public allowedContracts; mapping(bytes32 => bytes32) public listedItems; //itemHash => orderHash - mapping(bytes32 => Structs.Order) public orders; //orderHash => Order + mapping(bytes32 => OGREMarketStructs.Order) public orders; //orderHash => Order event MarketCreated(address daoAddress); event OrderFeeUpdated(uint256 newOrderFee); @@ -103,7 +103,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { //create new order if (orders[orderHash].creator == address(0x0)) { - Structs.Order memory order = Structs.Order( + OGREMarketStructs.Order memory order = OGREMarketStructs.Order( orderType, msg.sender, erc721Address, diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 629dfc9..4b4ca2a 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -5,7 +5,7 @@ import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./interfaces/IOGREDAO.sol"; import {Enums} from "./libraries/Enums.sol"; -import {Structs} from "./libraries/Structs.sol"; +import {OGREProposalStructs, ActionHopperStructs} from "./libraries/Structs.sol"; /** * @title Open Governance Referendum Engine Proposal Contract @@ -25,8 +25,8 @@ contract OGREProposal is Ownable { uint256 public endTime; //end of vote period (unix timestamp) uint256 public voteCount; //number of tokens that have cast a vote uint256[3] public voteTotals; //[0, 0, 0] == no, yes, abstain - mapping(uint256 => Structs.Vote) public votes; //token id => vote struct - Structs.Action[] private actions; //actions to load (in order) if proposal passes + mapping(uint256 => OGREProposalStructs.Vote) public votes; //token id => vote struct + ActionHopperStructs.Action[] private actions; //actions to load (in order) if proposal passes //========== Events ========== @@ -69,15 +69,16 @@ contract OGREProposal is Ownable { /** * @dev Creates proposal. - * @param proposalMetadata_ metadata link to information about proposal - * @param daoAddress_ address of dao - * @param owner_ address of owner + * @param _params_ constructor params */ - constructor(string memory proposalMetadata_, address daoAddress_, address owner_) Ownable(owner_) { - if (daoAddress_ == address(0x0)) revert InvalidAddress("daoAddress_", daoAddress_); + constructor( + OGREProposalStructs.ConstructorParams memory _params_ + ) Ownable(_params_.owner) { + if (_params_.daoAddress == address(0x0)) revert InvalidAddress("daoAddress", _params_.daoAddress); - daoAddress = daoAddress_; - proposalMetadata = proposalMetadata_; + daoAddress = _params_.daoAddress; + revotable = _params_.revotable; + proposalMetadata = _params_.proposalMetadata; emit StatusUpdated(Enums.ProposalStatus.PROPOSED, Enums.ProposalStatus.PROPOSED); } @@ -137,7 +138,7 @@ contract OGREProposal is Ownable { */ function addAction(address target, uint256 value, string memory sig, bytes memory data) public onlyOwner onlyPreVote { //ready is set as zero when added, gets ready time set when loaded into action hopper - Structs.Action memory act = Structs.Action(target, value, sig, data, 0); + ActionHopperStructs.Action memory act = ActionHopperStructs.Action(target, value, sig, data, 0); actions.push(act); } @@ -161,7 +162,7 @@ contract OGREProposal is Ownable { * @param index index of action * @return Action action at index */ - function getAction(uint256 index) public view returns (Structs.Action memory) { + function getAction(uint256 index) public view returns (ActionHopperStructs.Action memory) { return actions[index]; } @@ -205,7 +206,7 @@ contract OGREProposal is Ownable { * @param tokenId id of token * @return Vote vote for token id */ - function getVote(uint256 tokenId) public view returns (Structs.Vote memory) { + function getVote(uint256 tokenId) public view returns (OGREProposalStructs.Vote memory) { return votes[tokenId]; } @@ -219,6 +220,11 @@ contract OGREProposal is Ownable { _updateStatus(Enums.ProposalStatus.CANCELLED); } + /** + * @dev Sets action ready time. + * @param index index of action + * @param readyTime ready time of action + */ function setActionReady(uint256 index, uint256 readyTime) external onlyDAO { // require(getActionCount() > 0, "no actions to update"); // require(index <= getActionCount() - 1, "no action at index"); diff --git a/src/factories/OGREProposalFactory.sol b/src/factories/OGREProposalFactory.sol index 206f4f9..8af2815 100644 --- a/src/factories/OGREProposalFactory.sol +++ b/src/factories/OGREProposalFactory.sol @@ -3,11 +3,22 @@ pragma solidity ^0.8.20; import "../abstract/OGREFactory.sol"; import "../OGREProposal.sol"; +import {OGREProposalStructs} from "../libraries/Structs.sol"; contract OGREProposalFactory is OGREFactory { - function produceOGREProposal(string memory title, address daoAddress, address owner) public returns (address) { - OGREProposal prop = new OGREProposal(title, daoAddress, owner); + function produceOGREProposal( + string memory title, + address daoAddress, + address owner + ) public returns (address) { + OGREProposalStructs.ConstructorParams memory _params_ = OGREProposalStructs.ConstructorParams({ + revotable: false, + daoAddress: daoAddress, + owner: owner, + proposalMetadata: title + }); + OGREProposal prop = new OGREProposal(_params_); productionCount += 1; emit ContractProduced(address(prop), owner); return address(prop); diff --git a/src/interfaces/IOGREProposal.sol b/src/interfaces/IOGREProposal.sol index 93261bb..5129951 100644 --- a/src/interfaces/IOGREProposal.sol +++ b/src/interfaces/IOGREProposal.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.20; import {Enums} from "../libraries/Enums.sol"; -import {Structs} from "../libraries/Structs.sol"; +import {ActionHopperStructs} from "../libraries/Structs.sol"; /** * @notice OGRE proposal interface definition @@ -14,7 +14,7 @@ interface IOGREProposal { function endTime() external view returns (uint256); function voteTotals(uint256 vote) external view returns (uint256); function getActionCount() external view returns (uint256); - function getAction(uint256 index) external view returns (Structs.Action memory); + function getAction(uint256 index) external view returns (ActionHopperStructs.Action memory); function addAction(address target, uint256 value, string memory sig, bytes memory data) external; function updateStatus(uint8 newStatus) external; diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index 101561f..e350976 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -3,6 +3,16 @@ pragma solidity ^0.8.20; import {Enums} from "./Enums.sol"; +library ActionHopperStructs { + struct Action { + address target; + uint256 value; + string sig; + bytes data; + uint256 ready; + } +} + library OGREDAOStructs { struct ConstructorParams { address parentDAO; @@ -24,24 +34,6 @@ library OGREMarketStructs { address daoAddress; } - -} - -library Structs { - - struct Action { - address target; - uint256 value; - string sig; - bytes data; - uint256 ready; - } - - struct Vote { - Enums.VoteDirection direction; - bool voted; - } - struct Order { Enums.OrderType orderType; address creator; @@ -89,5 +81,18 @@ library Structs { // uint256 listingTokenId; // bool allowPartialFill; // } +} +library OGREProposalStructs { + struct ConstructorParams { + bool revotable; + address daoAddress; + address owner; + string proposalMetadata; + } + + struct Vote { + Enums.VoteDirection direction; + bool voted; + } } \ No newline at end of file diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index c5db235..31e37c5 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -101,6 +101,12 @@ contract OGREDAOTest is Test { assertEq(daoContract.minVoteDuration(), newVoteDuration); } + function test_SetNewProposalCost() public { + uint256 newProposalCost = 0.0001 ether; + daoContract.setProposalCost(newProposalCost); + assertEq(daoContract.proposalCost(), newProposalCost); + } + function test_SetNewActionDelay() public { uint256 newDelay = 20; // 20 seconds daoContract.setActionDelay(newDelay); @@ -109,6 +115,22 @@ contract OGREDAOTest is Test { // ========== Membership Tests ========== + function test_RevertIf_NotTokenOwner() public { + uint256 tokenId = 0; + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(OGREDAO.InvalidSender.selector, user1, user0)); + daoContract.registerMember(tokenId); + } + + function test_RevertIf_MemberAlreadyRegistered() public { + uint256 tokenId = 0; + vm.prank(user0); + daoContract.registerMember(tokenId); + vm.prank(user0); + vm.expectRevert(abi.encodeWithSelector(OGREDAO.TokenAlreadyRegistered.selector)); + daoContract.registerMember(tokenId); + } + function test_RegisterNewMember() public { uint256 tokenId = 0; uint256 preMemberCount = daoContract.memberCount(); @@ -122,14 +144,16 @@ contract OGREDAOTest is Test { assertEq(daoContract.memberCount(), preMemberCount + 1); assertEq(uint256(daoContract.getMemberStatus(tokenId)), 1); } + + // ========== Proposal Tests ========== - function test_RevertIf_MemberAlreadyRegistered() public { - uint256 tokenId = 0; - vm.prank(user0); - daoContract.registerMember(tokenId); + function test_RevertIf_InsufficientPayment() public { + uint256 newProposalCost = 0.0001 ether; + daoContract.setProposalCost(newProposalCost); vm.prank(user0); - vm.expectRevert(abi.encodeWithSelector(OGREDAO.TokenAlreadyRegistered.selector)); - daoContract.registerMember(tokenId); + vm.expectRevert(abi.encodeWithSelector(OGREDAO.InsufficientPayment.selector, 0, newProposalCost)); + //solhint-disable-next-line + daoContract.draftProposal(proposalTitle).call{value: 0}(""); } // function testDraftAndSetupProposal() public { From 4b03e88812bb710a9f2008d21f0df648574158cf Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 3 May 2025 01:02:20 -0400 Subject: [PATCH 17/20] refactor enums --- src/OGREMarket.sol | 16 ++++++++-------- src/interfaces/IOGREMarket.sol | 4 ++-- src/libraries/Enums.sol | 4 +++- src/libraries/Structs.sol | 6 +++--- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/OGREMarket.sol b/src/OGREMarket.sol index 96d82bd..b169419 100644 --- a/src/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -7,7 +7,7 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Constants} from "./libraries/Constants.sol"; -import {Enums} from "./libraries/Enums.sol"; +import {Enums, OGREMarketEnums} from "./libraries/Enums.sol"; import {OGREMarketStructs} from "./libraries/Structs.sol"; //TODO: add order expiration @@ -34,7 +34,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { event FeeRecipientUpdated(address newFeeRecipient); // event MinOrderDurationUpdated(uint256 newMinOrderDuration); event AllowlistUpdated(address contractAddress, bool allowed); - event OrderCreated(bytes32 indexed orderHash, Enums.OrderType orderType, address creator, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount); + event OrderCreated(bytes32 indexed orderHash, OGREMarketEnums.OrderType orderType, address creator, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount); event OrderCancelled(bytes32 indexed orderHash); // event OrderContracted(bytes32 indexed orderHash, uint256 fulfillmentId); event OrderFulfilled(bytes32 indexed orderHash); @@ -75,8 +75,8 @@ contract OGREMarket is AccessControl, ReentrancyGuard { //========== Order Functions ========== - function createOrder(Enums.OrderType orderType, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) public payable nonReentrant { - require(orderType == Enums.OrderType.ASK || orderType == Enums.OrderType.BID, "invalid order type"); + function createOrder(OGREMarketEnums.OrderType orderType, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) public payable nonReentrant { + require(orderType == OGREMarketEnums.OrderType.ASK || orderType == OGREMarketEnums.OrderType.BID, "invalid order type"); require(allowedContracts[erc721Address], "erc721 contract not allowed"); require(allowedContracts[erc20Address], "erc20 contract not allowed"); require(amount > 0, "invalid amount"); @@ -88,7 +88,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { //asks indicate ownership of the erc721 item, bids indicate ownership of erc20 tokens IERC20 erc20Contract = IERC20(erc20Address); IERC721 erc721Contract = IERC721(erc721Address); - if (orderType == Enums.OrderType.ASK) { + if (orderType == OGREMarketEnums.OrderType.ASK) { require(listedItems[itemHash] == bytes32(0), "ask already exists for token id"); require(erc721Contract.ownerOf(tokenId) == msg.sender, "not item owner"); require(erc721Contract.getApproved(tokenId) == address(this) || erc721Contract.isApprovedForAll(msg.sender, address(this)), "not approved"); @@ -112,7 +112,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { amount ); orders[orderHash] = order; - if (orderType == Enums.OrderType.ASK) { + if (orderType == OGREMarketEnums.OrderType.ASK) { listedItems[itemHash] = orderHash; } emit OrderCreated(orderHash, orderType, msg.sender, erc721Address, tokenId, erc20Address, amount); @@ -122,7 +122,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { address erc721Holder; address erc20Holder; - if (orderType == Enums.OrderType.ASK) { + if (orderType == OGREMarketEnums.OrderType.ASK) { erc721Holder = msg.sender; erc20Holder = orders[orderHash].creator; } else { @@ -146,7 +146,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { function cancelOrder(bytes32 orderHash) public { require(orders[orderHash].creator != address(0x0), "order not found"); require(orders[orderHash].creator == msg.sender, "not order creator"); - if (orders[orderHash].orderType == Enums.OrderType.ASK) { + if (orders[orderHash].orderType == OGREMarketEnums.OrderType.ASK) { bytes32 itemHash = calcItemHash(orders[orderHash].erc721Address, orders[orderHash].tokenId); delete listedItems[itemHash]; } diff --git a/src/interfaces/IOGREMarket.sol b/src/interfaces/IOGREMarket.sol index 29d8174..579aeee 100644 --- a/src/interfaces/IOGREMarket.sol +++ b/src/interfaces/IOGREMarket.sol @@ -1,14 +1,14 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import {Enums} from "../libraries/Enums.sol"; +import {OGREMarketEnums} from "../libraries/Enums.sol"; /** * @notice OGREMarket interface definition */ interface IOGREMarket { function allowedContracts(address contractAddress) external view returns (bool); - function createOrder(Enums.OrderType orderType, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) external payable; + function createOrder(OGREMarketEnums.OrderType orderType, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) external payable; function orderExists(bytes32 orderHash) external view returns (bool); function calcOrderHash(address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) external pure returns (bytes32); function calcItemHash(address erc721Address, uint256 tokenId) external pure returns (bytes32); diff --git a/src/libraries/Enums.sol b/src/libraries/Enums.sol index c5c5d5e..8ee00c9 100644 --- a/src/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -52,6 +52,9 @@ library Enums { PRIVATE } +} + +library OGREMarketEnums { /** * ASK: * BID: @@ -71,5 +74,4 @@ library Enums { ERC721, ERC1155 } - } \ No newline at end of file diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index e350976..f851687 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import {Enums} from "./Enums.sol"; +import {Enums, OGREMarketEnums} from "./Enums.sol"; library ActionHopperStructs { struct Action { @@ -35,7 +35,7 @@ library OGREMarketStructs { } struct Order { - Enums.OrderType orderType; + OGREMarketEnums.OrderType orderType; address creator; address erc721Address; uint256 tokenId; @@ -47,7 +47,7 @@ library OGREMarketStructs { } struct AdvancedOrder { - Enums.OrderType orderType; + OGREMarketEnums.OrderType orderType; address creator; address erc721Address; uint256 tokenId; From e0b105b05926e95ade55ada59d575a7bca9127e3 Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 3 May 2025 01:22:55 -0400 Subject: [PATCH 18/20] add fail action queue --- src/OGREDAO.sol | 14 +++---- src/OGREMarket.sol | 2 +- src/OGREProposal.sol | 69 +++++++++++++++++++------------- src/interfaces/IOGREDAO.sol | 4 +- src/interfaces/IOGREProposal.sol | 4 +- src/libraries/Enums.sol | 62 +++++++++++++++------------- src/libraries/Structs.sol | 4 +- 7 files changed, 90 insertions(+), 69 deletions(-) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 4ecc2f4..58545ce 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -8,7 +8,7 @@ import "./interfaces/IOGREProposal.sol"; import "./abstract/ActionHopper.sol"; import {Constants} from "./libraries/Constants.sol"; -import {Enums} from "./libraries/Enums.sol"; +import {OGREDAOEnums} from "./libraries/Enums.sol"; import {OGREDAOStructs, ActionHopperStructs} from "./libraries/Structs.sol"; /** @@ -35,7 +35,7 @@ contract OGREDAO is ActionHopper { uint256 public minVoteDuration; //min length of time (in seconds) that a proposal must be open for a vote uint256 public memberCount; //number of invited nfts from set that have been registered to the dao - mapping(uint256 => Enums.MemberStatus) private _members; //token id => member status + mapping(uint256 => OGREDAOEnums.MemberStatus) private _members; //token id => member status mapping(uint256 => bool) public memberAllowlist; //token id => isAllowed bool public allowListEnabled; //if true, only members in the allowlist can register @@ -199,7 +199,7 @@ contract OGREDAO is ActionHopper { */ function registerMember(uint256 tokenId) public { if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidSender(msg.sender, IERC721(nftAddress).ownerOf(tokenId)); - if (_members[tokenId] == Enums.MemberStatus.REGISTERED) revert TokenAlreadyRegistered(); + if (_members[tokenId] == OGREDAOEnums.MemberStatus.REGISTERED) revert TokenAlreadyRegistered(); _registerMember(tokenId); } @@ -209,7 +209,7 @@ contract OGREDAO is ActionHopper { * @param tokenId id of nft token to check * @return status status of member */ - function getMemberStatus(uint256 tokenId) public view returns (Enums.MemberStatus) { + function getMemberStatus(uint256 tokenId) public view returns (OGREDAOEnums.MemberStatus) { return _members[tokenId]; } @@ -243,7 +243,7 @@ contract OGREDAO is ActionHopper { */ function evaluateProposal(address proposal) public returns (bool) { if (!isProposal(proposal)) revert ProposalNotRecognized(); - if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PROPOSED) revert InvalidProposalState(); + if (IOGREProposal(proposal).status() != OGREProposalEnums.ProposalStatus.PROPOSED) revert InvalidProposalState(); if (IOGREProposal(proposal).startTime() == 0) revert InvalidProposalState(); if (block.timestamp <= IOGREProposal(proposal).endTime()) revert VotePeriodNotEnded(); @@ -294,7 +294,7 @@ contract OGREDAO is ActionHopper { */ function executeProposal(address proposal) public { if (!isProposal(proposal)) revert ProposalNotRecognized(); - if (IOGREProposal(proposal).status() != Enums.ProposalStatus.PASSED) revert InvalidProposalState(); + if (IOGREProposal(proposal).status() != OGREProposalEnums.ProposalStatus.PASSED) revert InvalidProposalState(); if (IOGREProposal(proposal).getActionCount() == 0) revert NoActionsToExecute(); //set proposal status to executed @@ -322,7 +322,7 @@ contract OGREDAO is ActionHopper { //========== Internal ========== function _registerMember(uint256 tokenId) internal { - _members[tokenId] = Enums.MemberStatus.REGISTERED; + _members[tokenId] = OGREDAOEnums.MemberStatus.REGISTERED; memberCount += 1; emit MemberRegistered(tokenId, msg.sender); diff --git a/src/OGREMarket.sol b/src/OGREMarket.sol index b169419..235bc04 100644 --- a/src/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -7,7 +7,7 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Constants} from "./libraries/Constants.sol"; -import {Enums, OGREMarketEnums} from "./libraries/Enums.sol"; +import {OGREMarketEnums} from "./libraries/Enums.sol"; import {OGREMarketStructs} from "./libraries/Structs.sol"; //TODO: add order expiration diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 4b4ca2a..bf84abe 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./interfaces/IOGREDAO.sol"; -import {Enums} from "./libraries/Enums.sol"; +import {OGREProposalEnums} from "./libraries/Enums.sol"; import {OGREProposalStructs, ActionHopperStructs} from "./libraries/Structs.sol"; /** @@ -20,13 +20,14 @@ contract OGREProposal is Ownable { bool public revotable; //allows members to change their votes during voting period string public proposalMetadata; //metadata link to information about proposal - Enums.ProposalStatus public status; //proposed, cancelled, failed, passed, executed (cancelled, failed, and executed are terminal states) + OGREProposalEnums.ProposalStatus public status; //proposed, cancelled, failed, passed, executed (cancelled, failed, and executed are terminal states) uint256 public startTime; //start of vote period (unix timestamp) uint256 public endTime; //end of vote period (unix timestamp) uint256 public voteCount; //number of tokens that have cast a vote uint256[3] public voteTotals; //[0, 0, 0] == no, yes, abstain mapping(uint256 => OGREProposalStructs.Vote) public votes; //token id => vote struct - ActionHopperStructs.Action[] private actions; //actions to load (in order) if proposal passes + ActionHopperStructs.Action[] internal _passActions; //actions to load (in order) if proposal passes + ActionHopperStructs.Action[] internal _failActions; //actions to load (in order) if proposal fails //========== Events ========== @@ -35,7 +36,7 @@ contract OGREProposal is Ownable { * @param previousStatus previous status of proposal * @param newStatus new status of proposal */ - event StatusUpdated(Enums.ProposalStatus previousStatus, Enums.ProposalStatus newStatus); + event StatusUpdated(OGREProposalEnums.ProposalStatus previousStatus, OGREProposalEnums.ProposalStatus newStatus); /** * @notice Logs a vote. @@ -43,7 +44,7 @@ contract OGREProposal is Ownable { * @param tokenId id of nft token granting vote * @param vote direction of vote (0 = NO, 1 = YES, 2 = ABSTAIN) */ - event VoteCast(address voter, uint256 tokenId, Enums.VoteDirection vote); + event VoteCast(address voter, uint256 tokenId, OGREProposalEnums.VoteDirection vote); /** * @notice Logs a successful evaluation of proposal results. @@ -56,9 +57,9 @@ contract OGREProposal is Ownable { //========== Errors ========== error InvalidAddress(string variableName, address value); - error InvalidProposalStatus(Enums.ProposalStatus currentStatus, Enums.ProposalStatus requiredStatus); - error InvalidMemberStatus(Enums.MemberStatus currentStatus, Enums.MemberStatus requiredStatus); - error InvalidVoteDirection(Enums.VoteDirection vote); + error InvalidProposalStatus(OGREProposalEnums.ProposalStatus currentStatus, OGREProposalEnums.ProposalStatus requiredStatus); + error InvalidMemberStatus(OGREDAOEnums.MemberStatus currentStatus, OGREDAOEnums.MemberStatus requiredStatus); + error InvalidVoteDirection(OGREProposalEnums.VoteDirection vote); error InvalidTokenOwner(uint256 tokenId, address owner); error StartTimeInPast(); error EndTimeBeforeStartTime(); @@ -80,7 +81,7 @@ contract OGREProposal is Ownable { revotable = _params_.revotable; proposalMetadata = _params_.proposalMetadata; - emit StatusUpdated(Enums.ProposalStatus.PROPOSED, Enums.ProposalStatus.PROPOSED); + emit StatusUpdated(OGREProposalEnums.ProposalStatus.PROPOSED, OGREProposalEnums.ProposalStatus.PROPOSED); } //========== Modifiers ========== @@ -136,25 +137,35 @@ contract OGREProposal is Ownable { /** * @dev Pushes a new action to the end of the actions queue */ - function addAction(address target, uint256 value, string memory sig, bytes memory data) public onlyOwner onlyPreVote { + function addAction(bool passAction, address target, uint256 value, string memory sig, bytes memory data) public onlyOwner onlyPreVote { //ready is set as zero when added, gets ready time set when loaded into action hopper ActionHopperStructs.Action memory act = ActionHopperStructs.Action(target, value, sig, data, 0); - actions.push(act); + + //add action to appropriate action queue + if (passAction) { + _passActions.push(act); + } else { + _failActions.push(act); + } } /** * @dev Removes action at end of action queue */ - function removeAction() public onlyOwner onlyPreVote { - actions.pop(); + function removeAction(bool passAction) public onlyOwner onlyPreVote { + if (passAction) { + _passActions.pop(); + } else { + _failActions.pop(); + } } /** * @dev Returns number of actions in proposal. * @return uint256 of actions in proposal */ - function getActionCount() public view returns (uint256) { - return actions.length; + function getActionCount(bool passAction) public view returns (uint256) { + return passAction ? _passActions.length : _failActions.length; } /** @@ -162,8 +173,8 @@ contract OGREProposal is Ownable { * @param index index of action * @return Action action at index */ - function getAction(uint256 index) public view returns (ActionHopperStructs.Action memory) { - return actions[index]; + function getActionByIndex(bool passAction, uint256 index) public view returns (ActionHopperStructs.Action memory) { + return passAction ? _passActions[index] : _failActions[index]; } //========== Voting ========== @@ -173,14 +184,14 @@ contract OGREProposal is Ownable { * @param tokenId id of token casting votes * @param vote number representing vote (0 = NO, 1 = YES, 2 = ABSTAIN) */ - function castVote(uint256 tokenId, Enums.VoteDirection vote) public { + function castVote(uint256 tokenId, OGREProposalEnums.VoteDirection vote) public { //validate - if (status != Enums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, Enums.ProposalStatus.PROPOSED); - if (IOGREDAO(daoAddress).getMemberStatus(tokenId) != Enums.MemberStatus.REGISTERED) { - revert InvalidMemberStatus(IOGREDAO(daoAddress).getMemberStatus(tokenId), Enums.MemberStatus.REGISTERED); + if (status != OGREProposalEnums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, OGREProposalEnums.ProposalStatus.PROPOSED); + if (IOGREDAO(daoAddress).getMemberStatus(tokenId) != OGREDAOEnums.MemberStatus.REGISTERED) { + revert InvalidMemberStatus(IOGREDAO(daoAddress).getMemberStatus(tokenId), OGREDAOEnums.MemberStatus.REGISTERED); } if (IERC721(daoAddress).ownerOf(tokenId) != msg.sender) revert InvalidTokenOwner(tokenId, msg.sender); - if (vote > Enums.VoteDirection(2)) revert InvalidVoteDirection(vote); + if (vote > OGREProposalEnums.VoteDirection(2)) revert InvalidVoteDirection(vote); require(block.timestamp >= startTime, "must be after start time"); require(block.timestamp <= endTime, "must be before end time"); @@ -216,8 +227,8 @@ contract OGREProposal is Ownable { * @dev Cancels proposal. */ function cancelProposal() public onlyOwner { - if (status != Enums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, Enums.ProposalStatus.PROPOSED); - _updateStatus(Enums.ProposalStatus.CANCELLED); + if (status != OGREProposalEnums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, OGREProposalEnums.ProposalStatus.PROPOSED); + _updateStatus(OGREProposalEnums.ProposalStatus.CANCELLED); } /** @@ -225,18 +236,22 @@ contract OGREProposal is Ownable { * @param index index of action * @param readyTime ready time of action */ - function setActionReady(uint256 index, uint256 readyTime) external onlyDAO { + function setActionReady(bool passAction, uint256 index, uint256 readyTime) external onlyDAO { // require(getActionCount() > 0, "no actions to update"); // require(index <= getActionCount() - 1, "no action at index"); // require(readyTime > block.timestamp, "ready time must be in the future"); - actions[index].ready = readyTime; + if (passAction) { + _passActions[index].ready = readyTime; + } else { + _failActions[index].ready = readyTime; + } } /** * @dev Updates proposal status. * @param newStatus new status of proposal */ - function _updateStatus(Enums.ProposalStatus newStatus) internal { + function _updateStatus(OGREProposalEnums.ProposalStatus newStatus) internal { emit StatusUpdated(status, newStatus); status = newStatus; } diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index fca2021..4a9bae7 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import {Enums} from "../libraries/Enums.sol"; +import {OGREDAOEnums} from "../libraries/Enums.sol"; /** * @notice OGRE DAO interface definition @@ -16,7 +16,7 @@ interface IOGREDAO { function minVoteDuration() external view returns (uint256); function memberCount() external view returns (uint256); - function getMemberStatus(uint256 tokenId) external view returns (Enums.MemberStatus); + function getMemberStatus(uint256 tokenId) external view returns (OGREDAOEnums.MemberStatus); function proposalCount() external view returns (uint256); function proposals(uint256) external view returns (address); diff --git a/src/interfaces/IOGREProposal.sol b/src/interfaces/IOGREProposal.sol index 5129951..63b0e74 100644 --- a/src/interfaces/IOGREProposal.sol +++ b/src/interfaces/IOGREProposal.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import {Enums} from "../libraries/Enums.sol"; +import {OGREProposalEnums} from "../libraries/Enums.sol"; import {ActionHopperStructs} from "../libraries/Structs.sol"; /** @@ -9,7 +9,7 @@ import {ActionHopperStructs} from "../libraries/Structs.sol"; */ interface IOGREProposal { function proposalTitle() external view returns (string memory); - function status() external view returns (Enums.ProposalStatus); + function status() external view returns (OGREProposalEnums.ProposalStatus); function startTime() external view returns (uint256); function endTime() external view returns (uint256); function voteTotals(uint256 vote) external view returns (uint256); diff --git a/src/libraries/Enums.sol b/src/libraries/Enums.sol index 8ee00c9..c08da65 100644 --- a/src/libraries/Enums.sol +++ b/src/libraries/Enums.sol @@ -1,34 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -library Enums { - - /** - * Proposal Status Flow: - * PROPOSED - CANCELLED - * | \ - * PASSED FAILED - * | - * EXECUTED - */ - enum ProposalStatus { - PROPOSED, - CANCELLED, - FAILED, - PASSED, - EXECUTED - } - - /** - * NO: - * YES: - * ABSTAIN: - */ - enum VoteDirection { - NO, - YES, - ABSTAIN - } +library OGREDAOEnums { /** * UNREGISTERED: member has not registered, or elected to unregister after previously being registered @@ -55,6 +28,7 @@ library Enums { } library OGREMarketEnums { + /** * ASK: * BID: @@ -74,4 +48,36 @@ library OGREMarketEnums { ERC721, ERC1155 } + +} + +library OGREProposalEnums { + + /** + * Proposal Status Flow: + * PROPOSED - CANCELLED + * | \ + * PASSED FAILED + * | + * EXECUTED + */ + enum ProposalStatus { + PROPOSED, + CANCELLED, + FAILED, + PASSED, + EXECUTED + } + + /** + * NO: + * YES: + * ABSTAIN: + */ + enum VoteDirection { + NO, + YES, + ABSTAIN + } + } \ No newline at end of file diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index f851687..5eb8641 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; -import {Enums, OGREMarketEnums} from "./Enums.sol"; +import {OGREMarketEnums, OGREProposalEnums} from "./Enums.sol"; library ActionHopperStructs { struct Action { @@ -92,7 +92,7 @@ library OGREProposalStructs { } struct Vote { - Enums.VoteDirection direction; + OGREProposalEnums.VoteDirection direction; bool voted; } } \ No newline at end of file From 3ca4df3ec7fb6666e7052a67646578ec0515030f Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 3 May 2025 10:03:09 -0400 Subject: [PATCH 19/20] proposalURI update --- src/OGREDAO.sol | 39 +++++++++----- src/OGREProposal.sol | 75 +++++++++++++++------------ src/factories/OGREProposalFactory.sol | 4 +- src/libraries/Structs.sol | 2 +- test/OGREDAO.t.sol | 4 +- 5 files changed, 73 insertions(+), 51 deletions(-) diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 58545ce..9f79c82 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // import "@openzeppelin/contracts/access/AccessControl.sol"; import "./interfaces/IOGREProposalFactory.sol"; import "./interfaces/IOGREProposal.sol"; @@ -93,6 +94,7 @@ contract OGREDAO is ActionHopper { error TokenAlreadyRegistered(); error TokenAlreadyUnregistered(); error InsufficientPayment(uint256 provided, uint256 required); + error PaymentFailed(address token, uint256 provided, uint256 required); error ProposalNotRecognized(); error InvalidProposalState(); error VotePeriodNotEnded(); @@ -218,20 +220,17 @@ contract OGREDAO is ActionHopper { /** * @dev Drafts a new proposal */ - function draftProposal(string memory proposalTitle) public payable returns (address) { - if (msg.value != proposalCost) revert InsufficientPayment(msg.value, proposalCost); - - //call proposal factory to create new proposal - address prop = IOGREProposalFactory(proposalFactoryAddress).produceOGREProposal(proposalTitle, address(this), msg.sender); - - //update state - proposalCount += 1; - _proposals[prop] = proposalCount; - proposals[proposalCount] = prop; - - emit ProposalCreated(prop, proposalCount, msg.sender); + function draftProposal(string memory proposalURI) public payable returns (address) { + //validate + if (proposalCostToken == address(0x0)) { + if (msg.value != proposalCost) revert InsufficientPayment(msg.value, proposalCost); + } else { + /// @dev requires approval from token owner + bool success = IERC20(proposalCostToken).transferFrom(msg.sender, address(this), proposalCost); + if (!success) revert PaymentFailed(proposalCostToken, msg.value, proposalCost); + } - return prop; + return _draftProposal(proposalURI); } /** @@ -328,6 +327,20 @@ contract OGREDAO is ActionHopper { emit MemberRegistered(tokenId, msg.sender); } + function _draftProposal(string memory proposalURI) internal returns (address) { + //call proposal factory to create new proposal + address prop = IOGREProposalFactory(proposalFactoryAddress).produceOGREProposal(proposalURI, address(this), msg.sender); + + //update state + proposalCount += 1; + _proposals[prop] = proposalCount; + proposals[proposalCount] = prop; + + emit ProposalCreated(prop, proposalCount, msg.sender); + + return prop; + } + //========== Receive ========== receive() external payable {} diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index bf84abe..8d22993 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -18,7 +18,7 @@ contract OGREProposal is Ownable { address public immutable daoAddress; //dao whose members are allowed to cast votes on proposal bool public revotable; //allows members to change their votes during voting period - string public proposalMetadata; //metadata link to information about proposal + string public proposalURI; //metadata link to information about proposal OGREProposalEnums.ProposalStatus public status; //proposed, cancelled, failed, passed, executed (cancelled, failed, and executed are terminal states) uint256 public startTime; //start of vote period (unix timestamp) @@ -79,7 +79,7 @@ contract OGREProposal is Ownable { daoAddress = _params_.daoAddress; revotable = _params_.revotable; - proposalMetadata = _params_.proposalMetadata; + proposalURI = _params_.proposalURI; emit StatusUpdated(OGREProposalEnums.ProposalStatus.PROPOSED, OGREProposalEnums.ProposalStatus.PROPOSED); } @@ -102,14 +102,22 @@ contract OGREProposal is Ownable { _; } + /** + * @dev Reverts if before vote end period + */ + modifier onlyPostVote { + require(block.timestamp > endTime, "must be post vote period"); + _; + } + //========== Configuration ========== /** * @dev Sets proposal metadata. - * @param newProposalMetadata new proposal metadata + * @param newProposalURI new proposal metadata uri */ - function setProposalMetadata(string memory newProposalMetadata) public onlyOwner onlyPreVote { - proposalMetadata = newProposalMetadata; + function setProposalURI(string memory newProposalURI) public onlyOwner onlyPreVote { + proposalURI = newProposalURI; } /** @@ -135,28 +143,25 @@ contract OGREProposal is Ownable { } /** - * @dev Pushes a new action to the end of the actions queue - */ - function addAction(bool passAction, address target, uint256 value, string memory sig, bytes memory data) public onlyOwner onlyPreVote { - //ready is set as zero when added, gets ready time set when loaded into action hopper - ActionHopperStructs.Action memory act = ActionHopperStructs.Action(target, value, sig, data, 0); - - //add action to appropriate action queue - if (passAction) { - _passActions.push(act); - } else { - _failActions.push(act); - } - } - - /** - * @dev Removes action at end of action queue + * @dev Sets actions for proposal. Ready time can be zero when added, gets ready time set when loaded into action hopper + * @param passActionQueue true if actions are for pass queue, false if actions are for fail queue + * @param newActions actions to load (in order) */ - function removeAction(bool passAction) public onlyOwner onlyPreVote { - if (passAction) { - _passActions.pop(); - } else { - _failActions.pop(); + function setActions( + bool passActionQueue, + ActionHopperStructs.Action[] calldata newActions + ) public onlyOwner onlyPreVote { + passActionQueue ? delete _passActions : delete _failActions; + if (newActions.length > 0) { + if (passActionQueue) { + for (uint256 i = 0; i < newActions.length; i++) { + _passActions.push(newActions[i]); + } + } else { + for (uint256 i = 0; i < newActions.length; i++) { + _failActions.push(newActions[i]); + } + } } } @@ -164,8 +169,8 @@ contract OGREProposal is Ownable { * @dev Returns number of actions in proposal. * @return uint256 of actions in proposal */ - function getActionCount(bool passAction) public view returns (uint256) { - return passAction ? _passActions.length : _failActions.length; + function getActionCount(bool passActionQueue) public view returns (uint256) { + return passActionQueue ? _passActions.length : _failActions.length; } /** @@ -173,8 +178,8 @@ contract OGREProposal is Ownable { * @param index index of action * @return Action action at index */ - function getActionByIndex(bool passAction, uint256 index) public view returns (ActionHopperStructs.Action memory) { - return passAction ? _passActions[index] : _failActions[index]; + function getActionByIndex(bool passActionQueue, uint256 index) public view returns (ActionHopperStructs.Action memory) { + return passActionQueue ? _passActions[index] : _failActions[index]; } //========== Voting ========== @@ -227,7 +232,9 @@ contract OGREProposal is Ownable { * @dev Cancels proposal. */ function cancelProposal() public onlyOwner { - if (status != OGREProposalEnums.ProposalStatus.PROPOSED) revert InvalidProposalStatus(status, OGREProposalEnums.ProposalStatus.PROPOSED); + if (status != OGREProposalEnums.ProposalStatus.PROPOSED) { + revert InvalidProposalStatus(status, OGREProposalEnums.ProposalStatus.PROPOSED); + } _updateStatus(OGREProposalEnums.ProposalStatus.CANCELLED); } @@ -236,17 +243,19 @@ contract OGREProposal is Ownable { * @param index index of action * @param readyTime ready time of action */ - function setActionReady(bool passAction, uint256 index, uint256 readyTime) external onlyDAO { + function setActionReady(bool passActionQueue, uint256 index, uint256 readyTime) external onlyDAO { // require(getActionCount() > 0, "no actions to update"); // require(index <= getActionCount() - 1, "no action at index"); // require(readyTime > block.timestamp, "ready time must be in the future"); - if (passAction) { + if (passActionQueue) { _passActions[index].ready = readyTime; } else { _failActions[index].ready = readyTime; } } + //========== Internal ========== + /** * @dev Updates proposal status. * @param newStatus new status of proposal diff --git a/src/factories/OGREProposalFactory.sol b/src/factories/OGREProposalFactory.sol index 8af2815..c61b72e 100644 --- a/src/factories/OGREProposalFactory.sol +++ b/src/factories/OGREProposalFactory.sol @@ -8,7 +8,7 @@ import {OGREProposalStructs} from "../libraries/Structs.sol"; contract OGREProposalFactory is OGREFactory { function produceOGREProposal( - string memory title, + string memory proposalURI, address daoAddress, address owner ) public returns (address) { @@ -16,7 +16,7 @@ contract OGREProposalFactory is OGREFactory { revotable: false, daoAddress: daoAddress, owner: owner, - proposalMetadata: title + proposalURI: proposalURI }); OGREProposal prop = new OGREProposal(_params_); productionCount += 1; diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol index 5eb8641..cce8eae 100644 --- a/src/libraries/Structs.sol +++ b/src/libraries/Structs.sol @@ -88,7 +88,7 @@ library OGREProposalStructs { bool revotable; address daoAddress; address owner; - string proposalMetadata; + string proposalURI; } struct Vote { diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index 31e37c5..bbf01a5 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -33,7 +33,7 @@ contract OGREDAOTest is Test { uint256[] initialMembers; // OGRE Proposal - string proposalTitle = "Test Proposal"; + string proposalURI = "https://some-api-endpoint.com/"; uint256 startTime; uint256 endTime; @@ -153,7 +153,7 @@ contract OGREDAOTest is Test { vm.prank(user0); vm.expectRevert(abi.encodeWithSelector(OGREDAO.InsufficientPayment.selector, 0, newProposalCost)); //solhint-disable-next-line - daoContract.draftProposal(proposalTitle).call{value: 0}(""); + daoContract.draftProposal(proposalURI).call{value: 0}(""); } // function testDraftAndSetupProposal() public { From fa87cc15ee8bc6476302c533b995514b865c5676 Mon Sep 17 00:00:00 2001 From: Craig Date: Sat, 3 May 2025 22:45:34 -0400 Subject: [PATCH 20/20] ogredao tests --- src/OGREDAO.sol | 8 +- src/OGREMarket.sol | 6 +- src/OGREProposal.sol | 23 +-- src/abstract/ActionHopper.sol | 4 +- src/abstract/ERC721Receivable.sol | 3 +- src/factories/OGREDAOFactory.sol | 4 +- src/factories/OGREProposalFactory.sol | 4 +- src/interfaces/IActionHopper.sol | 24 ++++ src/interfaces/IOGREDAO.sol | 19 +++ src/interfaces/IOGREMarket.sol | 57 ++++++++ src/interfaces/IOGREProposal.sol | 21 ++- src/libraries/Structs.sol | 98 ------------- test/OGREDAO.t.sol | 193 ++++++++++++++++---------- 13 files changed, 269 insertions(+), 195 deletions(-) create mode 100644 src/interfaces/IActionHopper.sol delete mode 100644 src/libraries/Structs.sol diff --git a/src/OGREDAO.sol b/src/OGREDAO.sol index 9f79c82..47cefd6 100644 --- a/src/OGREDAO.sol +++ b/src/OGREDAO.sol @@ -10,7 +10,7 @@ import "./abstract/ActionHopper.sol"; import {Constants} from "./libraries/Constants.sol"; import {OGREDAOEnums} from "./libraries/Enums.sol"; -import {OGREDAOStructs, ActionHopperStructs} from "./libraries/Structs.sol"; +import {IOGREDAO} from "./interfaces/IOGREDAO.sol"; /** * @title Open Governance Referendum Engine DAO Contract @@ -107,7 +107,7 @@ contract OGREDAO is ActionHopper { * @param _params_ OGREDAO constructor parameters */ constructor( - OGREDAOStructs.ConstructorParams memory _params_ + IOGREDAO.ConstructorParams memory _params_ ) ActionHopper(_params_.delay) { // validate if (_params_.parentDAO != address(0x0)) { @@ -274,7 +274,7 @@ contract OGREDAO is ActionHopper { //load actions into hopper uint256 actionCount = IOGREProposal(proposal).getActionCount(); for (uint8 i = 0; i < actionCount; i++) { - ActionHopperStructs.Action memory act = IOGREProposal(proposal).getAction(i); + IActionHopper.Action memory act = IOGREProposal(proposal).getAction(i); act.ready = _loadAction(act.target, act.value, act.sig, act.data); IOGREProposal(proposal).setActionReady(i, act.ready); } @@ -302,7 +302,7 @@ contract OGREDAO is ActionHopper { //execute readied actions uint256 actionCount = IOGREProposal(proposal).getActionCount(); for (uint8 i = 0; i < actionCount; i++) { - ActionHopperStructs.Action memory act = IOGREProposal(proposal).getAction(i); + IActionHopper.Action memory act = IOGREProposal(proposal).getAction(i); _executeAction(act.target, act.value, act.sig, act.data, act.ready); } diff --git a/src/OGREMarket.sol b/src/OGREMarket.sol index 235bc04..f5bfac9 100644 --- a/src/OGREMarket.sol +++ b/src/OGREMarket.sol @@ -8,7 +8,7 @@ import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Constants} from "./libraries/Constants.sol"; import {OGREMarketEnums} from "./libraries/Enums.sol"; -import {OGREMarketStructs} from "./libraries/Structs.sol"; +import {IOGREMarket} from "./interfaces/IOGREMarket.sol"; //TODO: add order expiration //TODO: add order recipient @@ -27,7 +27,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { mapping(address => bool) public allowedContracts; mapping(bytes32 => bytes32) public listedItems; //itemHash => orderHash - mapping(bytes32 => OGREMarketStructs.Order) public orders; //orderHash => Order + mapping(bytes32 => IOGREMarket.Order) public orders; //orderHash => Order event MarketCreated(address daoAddress); event OrderFeeUpdated(uint256 newOrderFee); @@ -103,7 +103,7 @@ contract OGREMarket is AccessControl, ReentrancyGuard { //create new order if (orders[orderHash].creator == address(0x0)) { - OGREMarketStructs.Order memory order = OGREMarketStructs.Order( + IOGREMarket.Order memory order = IOGREMarket.Order( orderType, msg.sender, erc721Address, diff --git a/src/OGREProposal.sol b/src/OGREProposal.sol index 8d22993..b3bd06f 100644 --- a/src/OGREProposal.sol +++ b/src/OGREProposal.sol @@ -4,8 +4,10 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./interfaces/IOGREDAO.sol"; -import {OGREProposalEnums} from "./libraries/Enums.sol"; -import {OGREProposalStructs, ActionHopperStructs} from "./libraries/Structs.sol"; +import {OGREDAOEnums, OGREProposalEnums} from "./libraries/Enums.sol"; +import {IActionHopper} from "./interfaces/IActionHopper.sol"; +import {IOGREProposal} from "./interfaces/IOGREProposal.sol"; +import {IOGREDAO} from "./interfaces/IOGREDAO.sol"; /** * @title Open Governance Referendum Engine Proposal Contract @@ -25,9 +27,9 @@ contract OGREProposal is Ownable { uint256 public endTime; //end of vote period (unix timestamp) uint256 public voteCount; //number of tokens that have cast a vote uint256[3] public voteTotals; //[0, 0, 0] == no, yes, abstain - mapping(uint256 => OGREProposalStructs.Vote) public votes; //token id => vote struct - ActionHopperStructs.Action[] internal _passActions; //actions to load (in order) if proposal passes - ActionHopperStructs.Action[] internal _failActions; //actions to load (in order) if proposal fails + mapping(uint256 => IOGREProposal.Vote) public votes; //token id => vote struct + IActionHopper.Action[] internal _passActions; //actions to load (in order) if proposal passes + IActionHopper.Action[] internal _failActions; //actions to load (in order) if proposal fails //========== Events ========== @@ -73,7 +75,7 @@ contract OGREProposal is Ownable { * @param _params_ constructor params */ constructor( - OGREProposalStructs.ConstructorParams memory _params_ + IOGREProposal.ConstructorParams memory _params_ ) Ownable(_params_.owner) { if (_params_.daoAddress == address(0x0)) revert InvalidAddress("daoAddress", _params_.daoAddress); @@ -149,7 +151,7 @@ contract OGREProposal is Ownable { */ function setActions( bool passActionQueue, - ActionHopperStructs.Action[] calldata newActions + IActionHopper.Action[] calldata newActions ) public onlyOwner onlyPreVote { passActionQueue ? delete _passActions : delete _failActions; if (newActions.length > 0) { @@ -178,7 +180,7 @@ contract OGREProposal is Ownable { * @param index index of action * @return Action action at index */ - function getActionByIndex(bool passActionQueue, uint256 index) public view returns (ActionHopperStructs.Action memory) { + function getActionByIndex(bool passActionQueue, uint256 index) public view returns (IActionHopper.Action memory) { return passActionQueue ? _passActions[index] : _failActions[index]; } @@ -195,7 +197,8 @@ contract OGREProposal is Ownable { if (IOGREDAO(daoAddress).getMemberStatus(tokenId) != OGREDAOEnums.MemberStatus.REGISTERED) { revert InvalidMemberStatus(IOGREDAO(daoAddress).getMemberStatus(tokenId), OGREDAOEnums.MemberStatus.REGISTERED); } - if (IERC721(daoAddress).ownerOf(tokenId) != msg.sender) revert InvalidTokenOwner(tokenId, msg.sender); + address nftAddress = IOGREDAO(daoAddress).nftAddress(); + if (IERC721(nftAddress).ownerOf(tokenId) != msg.sender) revert InvalidTokenOwner(tokenId, msg.sender); if (vote > OGREProposalEnums.VoteDirection(2)) revert InvalidVoteDirection(vote); require(block.timestamp >= startTime, "must be after start time"); require(block.timestamp <= endTime, "must be before end time"); @@ -222,7 +225,7 @@ contract OGREProposal is Ownable { * @param tokenId id of token * @return Vote vote for token id */ - function getVote(uint256 tokenId) public view returns (OGREProposalStructs.Vote memory) { + function getVote(uint256 tokenId) public view returns (IOGREProposal.Vote memory) { return votes[tokenId]; } diff --git a/src/abstract/ActionHopper.sol b/src/abstract/ActionHopper.sol index 97ac397..b2e85cf 100644 --- a/src/abstract/ActionHopper.sol +++ b/src/abstract/ActionHopper.sol @@ -1,10 +1,12 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; +import {IActionHopper} from "../interfaces/IActionHopper.sol"; + /** * @title Action Hopper Contract */ -abstract contract ActionHopper { +abstract contract ActionHopper is IActionHopper { //========== State ========== diff --git a/src/abstract/ERC721Receivable.sol b/src/abstract/ERC721Receivable.sol index 868c79d..3eb3a7c 100644 --- a/src/abstract/ERC721Receivable.sol +++ b/src/abstract/ERC721Receivable.sol @@ -32,9 +32,8 @@ abstract contract ERC721Receivable is IERC721Receiver { * @param operator address of operator * @param from address of sender * @param tokenId id of token - * @param data data to send with the token */ - function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external virtual override returns (bytes4) { + function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata) external virtual override returns (bytes4) { // require(allowedERC721Contracts[from], "contract is not allowed"); // require(_erc721Balances[from][tokenId] == false, "erc721 token already owned"); // _erc721Balances[from][tokenId] = true; diff --git a/src/factories/OGREDAOFactory.sol b/src/factories/OGREDAOFactory.sol index 9a593c2..2476c17 100644 --- a/src/factories/OGREDAOFactory.sol +++ b/src/factories/OGREDAOFactory.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import "../abstract/OGREFactory.sol"; import "../OGREDAO.sol"; -import {OGREDAOStructs} from "../libraries/Structs.sol"; +import {IOGREDAO} from "../interfaces/IOGREDAO.sol"; contract OGREDAOFactory is OGREFactory { @@ -35,7 +35,7 @@ contract OGREDAOFactory is OGREFactory { uint256[] memory allowList, uint256[] memory initialMembers ) public returns (address) { - OGREDAOStructs.ConstructorParams memory params = OGREDAOStructs.ConstructorParams({ + IOGREDAO.ConstructorParams memory params = IOGREDAO.ConstructorParams({ parentDAO: parentDAO, nftAddress: nft, proposalFactoryAddress: proposalFactory, diff --git a/src/factories/OGREProposalFactory.sol b/src/factories/OGREProposalFactory.sol index c61b72e..a3c14cd 100644 --- a/src/factories/OGREProposalFactory.sol +++ b/src/factories/OGREProposalFactory.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.20; import "../abstract/OGREFactory.sol"; import "../OGREProposal.sol"; -import {OGREProposalStructs} from "../libraries/Structs.sol"; +import {IOGREProposal} from "../interfaces/IOGREProposal.sol"; contract OGREProposalFactory is OGREFactory { @@ -12,7 +12,7 @@ contract OGREProposalFactory is OGREFactory { address daoAddress, address owner ) public returns (address) { - OGREProposalStructs.ConstructorParams memory _params_ = OGREProposalStructs.ConstructorParams({ + IOGREProposal.ConstructorParams memory _params_ = IOGREProposal.ConstructorParams({ revotable: false, daoAddress: daoAddress, owner: owner, diff --git a/src/interfaces/IActionHopper.sol b/src/interfaces/IActionHopper.sol new file mode 100644 index 0000000..4dc0e02 --- /dev/null +++ b/src/interfaces/IActionHopper.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +/** + * @notice Action Hopper interface definition + */ +interface IActionHopper { + + //========== Definitions ========== + + struct Action { + address target; + uint256 value; + string sig; + bytes data; + uint256 ready; + } + + //========== Functions ========== + + // function loadAction(Action memory action) external; + // function cancelAction(Action memory action) external; + // function executeAction(Action memory action) external; +} \ No newline at end of file diff --git a/src/interfaces/IOGREDAO.sol b/src/interfaces/IOGREDAO.sol index 4a9bae7..66f443d 100644 --- a/src/interfaces/IOGREDAO.sol +++ b/src/interfaces/IOGREDAO.sol @@ -7,6 +7,25 @@ import {OGREDAOEnums} from "../libraries/Enums.sol"; * @notice OGRE DAO interface definition */ interface IOGREDAO { + + //========== Definitions ========== + + struct ConstructorParams { + address parentDAO; + address nftAddress; + address proposalFactoryAddress; + uint256 proposalCost; + address proposalCostToken; + uint256 quorumThreshold; + uint256 supportThreshold; + uint256 minVoteDuration; + uint256 delay; + uint256[] allowList; + uint256[] initialMembers; + } + + //========== Functions ========== + function parentDAO() external view returns (address); function proposalFactoryAddress() external view returns (address); function nftAddress() external view returns (address); diff --git a/src/interfaces/IOGREMarket.sol b/src/interfaces/IOGREMarket.sol index 579aeee..7561c20 100644 --- a/src/interfaces/IOGREMarket.sol +++ b/src/interfaces/IOGREMarket.sol @@ -7,6 +7,63 @@ import {OGREMarketEnums} from "../libraries/Enums.sol"; * @notice OGREMarket interface definition */ interface IOGREMarket { + + //========== Definitions ========== + + struct ConstructorParams { + address daoAddress; + } + + struct Order { + OGREMarketEnums.OrderType orderType; + address creator; + address erc721Address; + uint256 tokenId; + address erc20Address; + uint256 amount; + // address recipient; + // uint256 expiration; + // uint256 fulfillmentId; + } + + struct AdvancedOrder { + OGREMarketEnums.OrderType orderType; + address creator; + address erc721Address; + uint256 tokenId; + address erc20Address; + uint256 amount; + uint256 listingTokenId; + // address recipient; + // uint256 expiration; + // uint256 fulfillmentId; + } + + // enum TestItemType { + // ERC20, + // ERC721, + // ERC1155 + // } + + // struct TestItem { + // TestItemType itemType; + // address contractAddress; + // uint256 amountOrTokenId; + // } + + // struct TestAdvancedOrder { + // Enums.OrderType orderType; + // address creator; + // TestItem[] offered; + // TestItem[] requested; + // address recipient; + // uint256 expiration; + // uint256 listingTokenId; + // bool allowPartialFill; + // } + + //========== Functions ========== + function allowedContracts(address contractAddress) external view returns (bool); function createOrder(OGREMarketEnums.OrderType orderType, address erc721Address, uint256 tokenId, address erc20Address, uint256 amount) external payable; function orderExists(bytes32 orderHash) external view returns (bool); diff --git a/src/interfaces/IOGREProposal.sol b/src/interfaces/IOGREProposal.sol index 63b0e74..9922727 100644 --- a/src/interfaces/IOGREProposal.sol +++ b/src/interfaces/IOGREProposal.sol @@ -2,19 +2,36 @@ pragma solidity ^0.8.20; import {OGREProposalEnums} from "../libraries/Enums.sol"; -import {ActionHopperStructs} from "../libraries/Structs.sol"; +import {IActionHopper} from "./IActionHopper.sol"; /** * @notice OGRE proposal interface definition */ interface IOGREProposal { + + //========== Definitions ========== + + struct ConstructorParams { + bool revotable; + address daoAddress; + address owner; + string proposalURI; + } + + struct Vote { + OGREProposalEnums.VoteDirection direction; + bool voted; + } + + //========== Functions ========== + function proposalTitle() external view returns (string memory); function status() external view returns (OGREProposalEnums.ProposalStatus); function startTime() external view returns (uint256); function endTime() external view returns (uint256); function voteTotals(uint256 vote) external view returns (uint256); function getActionCount() external view returns (uint256); - function getAction(uint256 index) external view returns (ActionHopperStructs.Action memory); + function getAction(uint256 index) external view returns (IActionHopper.Action memory); function addAction(address target, uint256 value, string memory sig, bytes memory data) external; function updateStatus(uint8 newStatus) external; diff --git a/src/libraries/Structs.sol b/src/libraries/Structs.sol deleted file mode 100644 index cce8eae..0000000 --- a/src/libraries/Structs.sol +++ /dev/null @@ -1,98 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.20; - -import {OGREMarketEnums, OGREProposalEnums} from "./Enums.sol"; - -library ActionHopperStructs { - struct Action { - address target; - uint256 value; - string sig; - bytes data; - uint256 ready; - } -} - -library OGREDAOStructs { - struct ConstructorParams { - address parentDAO; - address nftAddress; - address proposalFactoryAddress; - uint256 proposalCost; - address proposalCostToken; - uint256 quorumThreshold; - uint256 supportThreshold; - uint256 minVoteDuration; - uint256 delay; - uint256[] allowList; - uint256[] initialMembers; - } -} - -library OGREMarketStructs { - struct ConstructorParams { - address daoAddress; - } - - struct Order { - OGREMarketEnums.OrderType orderType; - address creator; - address erc721Address; - uint256 tokenId; - address erc20Address; - uint256 amount; - // address recipient; - // uint256 expiration; - // uint256 fulfillmentId; - } - - struct AdvancedOrder { - OGREMarketEnums.OrderType orderType; - address creator; - address erc721Address; - uint256 tokenId; - address erc20Address; - uint256 amount; - uint256 listingTokenId; - // address recipient; - // uint256 expiration; - // uint256 fulfillmentId; - } - - // enum TestItemType { - // ERC20, - // ERC721, - // ERC1155 - // } - - // struct TestItem { - // TestItemType itemType; - // address contractAddress; - // uint256 amountOrTokenId; - // } - - // struct TestAdvancedOrder { - // Enums.OrderType orderType; - // address creator; - // TestItem[] offered; - // TestItem[] requested; - // address recipient; - // uint256 expiration; - // uint256 listingTokenId; - // bool allowPartialFill; - // } -} - -library OGREProposalStructs { - struct ConstructorParams { - bool revotable; - address daoAddress; - address owner; - string proposalURI; - } - - struct Vote { - OGREProposalEnums.VoteDirection direction; - bool voted; - } -} \ No newline at end of file diff --git a/test/OGREDAO.t.sol b/test/OGREDAO.t.sol index bbf01a5..1be83fa 100644 --- a/test/OGREDAO.t.sol +++ b/test/OGREDAO.t.sol @@ -6,7 +6,8 @@ import "../src/OGREDAO.sol"; import "../src/samples/SampleERC721.sol"; import "../src/OGREProposal.sol"; import "../src/factories/OGREProposalFactory.sol"; -import {OGREDAOStructs} from "../src/libraries/Structs.sol"; +import "../src/samples/SampleERC20.sol"; +import {IOGREDAO} from "../src/interfaces/IOGREDAO.sol"; contract OGREDAOTest is Test { // Accounts @@ -41,6 +42,7 @@ contract OGREDAOTest is Test { SampleERC721 nftContract; OGREDAO daoContract; OGREProposal proposalContract; + SampleERC20 erc20Contract; function setUp() public { // Get signers @@ -51,78 +53,118 @@ contract OGREDAOTest is Test { // Deploy contracts proposalFactoryContract = new OGREProposalFactory(); nftContract = new SampleERC721(name, symbol); - daoContract = new OGREDAO(OGREDAOStructs.ConstructorParams({ - parentDAO: address(0x0), - nftAddress: address(nftContract), - proposalFactoryAddress: address(proposalFactoryContract), - proposalCost: proposalCost, - proposalCostToken: address(0x0), - quorumThreshold: quorumThresh, - supportThreshold: supportThresh, - minVoteDuration: minVotePeriod, - delay: delay, - allowList: allowList, - initialMembers: initialMembers - })); + erc20Contract = new SampleERC20(name, symbol, user0); // Mint NFTs to user0 for (uint256 i = 0; i < 10; i++) { nftContract.mint(user0, i); } + + // Mint ERC20s to user0 + vm.prank(user0); + erc20Contract.mint(user0, 100); + } + + modifier setupDAO(uint32 configId) { + if (configId == 0) { + // Deploy DAO + daoContract = new OGREDAO(IOGREDAO.ConstructorParams({ + parentDAO: address(0x0), + nftAddress: address(nftContract), + proposalFactoryAddress: address(proposalFactoryContract), + proposalCost: proposalCost, + proposalCostToken: address(0x0), + quorumThreshold: quorumThresh, + supportThreshold: supportThresh, + minVoteDuration: minVotePeriod, + delay: delay, + allowList: allowList, + initialMembers: initialMembers + })); + } else if (configId == 1) { + // Deploy DAO + daoContract = new OGREDAO(IOGREDAO.ConstructorParams({ + parentDAO: address(0x0), + nftAddress: address(nftContract), + proposalFactoryAddress: address(proposalFactoryContract), + proposalCost: proposalCost, + proposalCostToken: address(erc20Contract), + quorumThreshold: quorumThresh, + supportThreshold: supportThresh, + minVoteDuration: minVotePeriod, + delay: delay, + allowList: allowList, + initialMembers: initialMembers + })); + } + _; } // ========== Configuration Tests ========== - function test_DeployOGREDAO() public view { + function test_DeployOGREDAO() public setupDAO(0) { assertEq(daoContract.nftAddress(), address(nftContract)); assertEq(daoContract.proposalFactoryAddress(), address(proposalFactoryContract)); assertEq(daoContract.delay(), delay); - - // assertTrue(daoContract.hasRole(daoAdminRole, user0)); - // assertFalse(daoContract.hasRole(daoAdminRole, user1)); - // assertEq(daoContract.getRoleAdmin(daoInviteRole), daoAdminRole); } - function test_SetNewQuorumThreshold() public { + function test_SetNewQuorumThreshold() public setupDAO(0) { + // Set new quorum threshold uint256 newQuorumThresh = 7000; // 70% daoContract.setQuorumThreshold(newQuorumThresh); + + // Check state assertEq(daoContract.quorumThreshold(), newQuorumThresh); } - function test_SetNewSupportThreshold() public { + function test_SetNewSupportThreshold() public setupDAO(0) { + // Set new support threshold uint256 newSupportThresh = 7000; // 70% daoContract.setSupportThreshold(newSupportThresh); + + // Check state assertEq(daoContract.supportThreshold(), newSupportThresh); } - function test_SetNewMinVoteDuration() public { + function test_SetNewMinVoteDuration() public setupDAO(0) { + // Set new min vote duration uint256 newVoteDuration = 400; // 4 mins daoContract.setMinVoteDuration(newVoteDuration); + + // Check state assertEq(daoContract.minVoteDuration(), newVoteDuration); } - function test_SetNewProposalCost() public { + function test_SetNewProposalCost() public setupDAO(0) { + // Set new proposal cost uint256 newProposalCost = 0.0001 ether; daoContract.setProposalCost(newProposalCost); + + // Check state assertEq(daoContract.proposalCost(), newProposalCost); } - function test_SetNewActionDelay() public { + function test_SetNewActionDelay() public setupDAO(0) { + // Set new action delay uint256 newDelay = 20; // 20 seconds daoContract.setActionDelay(newDelay); + + // Check state assertEq(daoContract.delay(), newDelay); } // ========== Membership Tests ========== - function test_RevertIf_NotTokenOwner() public { + function test_RevertIf_NotTokenOwner() public setupDAO(0) { + // Register member uint256 tokenId = 0; vm.prank(user1); vm.expectRevert(abi.encodeWithSelector(OGREDAO.InvalidSender.selector, user1, user0)); daoContract.registerMember(tokenId); } - function test_RevertIf_MemberAlreadyRegistered() public { + function test_RevertIf_MemberAlreadyRegistered() public setupDAO(0) { + // Register member uint256 tokenId = 0; vm.prank(user0); daoContract.registerMember(tokenId); @@ -131,7 +173,8 @@ contract OGREDAOTest is Test { daoContract.registerMember(tokenId); } - function test_RegisterNewMember() public { + function test_RegisterNewMember() public setupDAO(0) { + // Register member uint256 tokenId = 0; uint256 preMemberCount = daoContract.memberCount(); uint256 preMemberStatus = uint256(daoContract.getMemberStatus(tokenId)); @@ -147,70 +190,78 @@ contract OGREDAOTest is Test { // ========== Proposal Tests ========== - function test_RevertIf_InsufficientPayment() public { + function test_RevertIf_InsufficientNativePayment() public setupDAO(0) { uint256 newProposalCost = 0.0001 ether; daoContract.setProposalCost(newProposalCost); vm.prank(user0); vm.expectRevert(abi.encodeWithSelector(OGREDAO.InsufficientPayment.selector, 0, newProposalCost)); - //solhint-disable-next-line - daoContract.draftProposal(proposalURI).call{value: 0}(""); + (bool success, ) = daoContract.draftProposal(proposalURI).call{value: 0}(""); + require(success, "proposal call failed"); } - // function testDraftAndSetupProposal() public { - // uint256 propCount = daoContract.proposalCount(); + function test_DraftAndSetupProposal() public setupDAO(0) { + uint256 propCount = daoContract.proposalCount(); - // vm.prank(user0); - // address propAddress = daoContract.draftProposal(proposalTitle); + // Draft proposal + vm.prank(user0); + address propAddress = daoContract.draftProposal(proposalURI); - // assertEq(daoContract.proposalCount(), propCount + 1); - // assertEq(daoContract.proposals(propCount + 1), propAddress); + assertEq(daoContract.proposalCount(), propCount + 1); + assertEq(daoContract.proposals(propCount + 1), propAddress); + + // Register members + for (uint256 i = 0; i < 10; i++) { + vm.prank(user0); + daoContract.registerMember(i); + } - // // Register remaining members - // for (uint256 i = 1; i < 10; i++) { - // vm.prank(user0); - // daoContract.registerMember(i); - // } + // Fund DAO address + vm.deal(address(daoContract), 1 ether); - // // Fund DAO address - // vm.deal(address(daoContract), 0.0001 ether); + // Add action to proposalContract + proposalContract = OGREProposal(propAddress); + IActionHopper.Action[] memory passActions = new IActionHopper.Action[](1); + passActions[0] = IActionHopper.Action({ + target: user1, + value: 1 ether, + sig: "", + data: "", + ready: 0 + }); - // // Add action to proposalContract - // proposalContract = OGREProposal(propAddress); - // address target = user0; - // uint256 value = 1; - // string memory sig = ""; - // bytes memory data = ""; + vm.prank(user0); + proposalContract.setActions(true, passActions); - // vm.prank(user0); - // proposalContract.addAction(target, value, sig, data); + // Set vote period + startTime = block.timestamp + 1; + endTime = startTime + 300; - // // Set vote period - // startTime = block.timestamp + 1; - // endTime = startTime + 300; + vm.prank(user0); + proposalContract.setVotingPeriod(startTime, endTime); - // vm.prank(user0); - // proposalContract.setVotingPeriod(startTime, endTime); + // advance to start time + vm.warp(startTime); - // // Cast votes on proposalContract - // for (uint256 i = 0; i < 10; i++) { - // vm.prank(user0); - // proposalContract.castVote(i, 1); // yes vote - // } + // Cast votes on proposalContract + for (uint256 i = 0; i < 10; i++) { + vm.prank(user0); + proposalContract.castVote(i, OGREProposalEnums.VoteDirection.YES); // yes vote + } - // // Advance network time - // vm.warp(endTime + 1); - // } + // Advance network time + vm.warp(endTime + 1); + } - // function testCheckProposalAddress() public { - // vm.prank(user0); - // address propAddress = daoContract.draftProposal(proposalTitle); - // assertTrue(daoContract.isProposal(propAddress)); - // assertFalse(daoContract.isProposal(user0)); - // } + function test_CheckProposalAddress() public setupDAO(0) { + vm.prank(user0); + address propAddress = daoContract.draftProposal(proposalURI); + assertTrue(daoContract.isProposal(propAddress)); + assertFalse(daoContract.isProposal(user0)); + } // function testEvaluateProposalPassed() public { // vm.prank(user0); - // address propAddress = daoContract.draftProposal(proposalTitle); + // address propAddress = daoContract.draftProposal(proposalURI); // proposalContract = OGREProposal(propAddress); // // Setup proposalContract (similar to testDraftAndSetupProposal)