{"abi":[{"type":"constructor","inputs":[{"name":"reverter","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_majorVersion","type":"uint256","internalType":"uint256"},{"name":"_implementation","type":"address","internalType":"address"},{"name":"_newMinorVersion","type":"uint256","internalType":"uint256"},{"name":"_newPatchVersion","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"InverterBeacon__InvalidImplementation","type":"error","inputs":[]},{"name":"InverterBeacon__InvalidImplementationMinorOrPatchVersion","type":"error","inputs":[]},{"name":"OwnableInvalidOwner","type":"error","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"name":"OwnableUnauthorizedAccount","type":"error","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"name":"Constructed","type":"event","inputs":[{"name":"majorVersion","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"OwnershipTransferStarted","type":"event","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"OwnershipTransferred","type":"event","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"ShutdownInitiated","type":"event","inputs":[],"anonymous":false},{"name":"ShutdownReversed","type":"event","inputs":[],"anonymous":false},{"name":"Upgraded","type":"event","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"},{"name":"newMinorVersion","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newPatchVersion","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"acceptOwnership","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"emergencyModeActive","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"getImplementationAddress","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"getReverterAddress","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"implementation","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"owner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"pendingOwner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"renounceOwnership","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"restartImplementation","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"shutDownImplementation","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"supportsInterface","type":"function","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"transferOwnership","type":"function","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"upgradeTo","type":"function","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"newMinorVersion","type":"uint256","internalType":"uint256"},{"name":"newPatchVersion","type":"uint256","internalType":"uint256"},{"name":"overrideShutdown","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"version","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"reverter","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_majorVersion","type":"uint256"},{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"uint256","name":"_newMinorVersion","type":"uint256"},{"internalType":"uint256","name":"_newPatchVersion","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InverterBeacon__InvalidImplementation","type":"error"},{"inputs":[],"name":"InverterBeacon__InvalidImplementationMinorOrPatchVersion","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":"uint256","name":"majorVersion","type":"uint256"}],"name":"Constructed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":[],"name":"ShutdownInitiated","type":"event"},{"anonymous":false,"inputs":[],"name":"ShutdownReversed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"uint256","name":"newMinorVersion","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPatchVersion","type":"uint256"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyModeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReverterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restartImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shutDownImplementation","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"uint256","name":"newMinorVersion","type":"uint256"},{"internalType":"uint256","name":"newPatchVersion","type":"uint256"},{"internalType":"bool","name":"overrideShutdown","type":"bool"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Inverter Network","custom:security-contact":"security@inverter.network                          In case of any concerns or findings, please refer to our Security Policy                          at security.inverter.network or email us directly!","details":"Extends {ERC165} for interface detection and implements both {IInverterBeacon_v1} and          {IBeacon}. Uses modifiers to enforce constraints on implementation upgrades. Unique          features include emergency mode control and strict version handling with major,          minor and patch version concepts.","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":{"Constructed(uint256)":{"params":{"majorVersion":"The majorVersion of the implementation contract."}},"Upgraded(address,uint256,uint256)":{"params":{"implementation":"The new implementation address.","newMinorVersion":"The new minor version of the implementation contract.","newPatchVersion":"The new patch version of the implementation contract."}}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"emergencyModeActive()":{"returns":{"_0":"emergencyModeActive Is the beacon in emergency mode."}},"getImplementationAddress()":{"returns":{"_0":"ImplementationAddress The address of the implementation."}},"getReverterAddress()":{"returns":{"_0":"ReverterAddress The address of the reverter contract."}},"implementation()":{"details":"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending 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."},"restartImplementation()":{"details":"Only callable by owner.Changes the implementation address from address(0) to the original implementation."},"shutDownImplementation()":{"details":"Only callable by owner.Changes the implementation address to address(0)."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"upgradeTo(address,uint256,uint256,bool)":{"details":"Only callable by owner.`overrideShutdown` Doesnt do anything if {InverterBeacon_v1} is not in emergency mode.Revert if new implementation invalid.","params":{"newImplementation":"The new implementation address.","newMinorVersion":"The new minor version of the implementation contract.","newPatchVersion":"The new patch version of the implementation contract.","overrideShutdown":"Flag to enable upgradeTo function to override the shutdown."}},"version()":{"returns":{"_0":"Major version.","_1":"Minor version.","_2":"Patch version."}}},"stateVariables":{"_emergencyMode":{"details":"Is the {InverterBeacon_v1} shut down / in emergency mode."},"_implementationAddress":{"details":"The {InverterBeacon_v1}'s implementation address.         Can only be changed via the `_setImplementation()` function."},"_implementationPointer":{"details":"The {InverterBeacon_v1}'s current implementation pointer.         In case of emergency can be set to `_reverterAddress` to pause functionality."},"_reverterAddress":{"details":"The address of the contract that will revert all transactions.         Can only be set via the `constructor()` function."},"majorVersion":{"details":"The major version of the implementation."},"minorVersion":{"details":"The minor version of the implementation."},"patchVersion":{"details":"The patch version of the implementation."}},"title":"Inverter Beacon","version":1},"userdoc":{"errors":{"InverterBeacon__InvalidImplementation()":[{"notice":"Given implementation invalid."}],"InverterBeacon__InvalidImplementationMinorOrPatchVersion()":[{"notice":"Given implementation minor and patch version is not higher than previous minor version."}]},"events":{"Constructed(uint256)":{"notice":"The {InverterBeacon_v1} was constructed."},"ShutdownInitiated()":{"notice":"The {InverterBeacon_v1} shutdown was initiated."},"ShutdownReversed()":{"notice":"The {InverterBeacon_v1} shutdown was reversed."},"Upgraded(address,uint256,uint256)":{"notice":"The {InverterBeacon_v1} was upgraded to a new implementation address."}},"kind":"user","methods":{"emergencyModeActive()":{"notice":"Returns wether the {InverterBeacon_v1} is in emergency mode or not."},"getImplementationAddress()":{"notice":"Returns the implementation address of the {InverterBeacon_v1}."},"getReverterAddress()":{"notice":"Returns the {InverterReverter_v1} of the {InverterBeacon_v1}."},"restartImplementation()":{"notice":"Restarts the {InverterBeacon_v1} and the system."},"shutDownImplementation()":{"notice":"Shuts down the {InverterBeacon_v1} and stops the system."},"upgradeTo(address,uint256,uint256,bool)":{"notice":"Upgrades the {InverterBeacon_v1} to a new implementation address."},"version()":{"notice":"Returns the version of the linked implementation."}},"notice":"Manages upgrades and versioning for smart contract implementations, allowing          contract administrators to dynamically change contract logic while maintaining          the state. Supports emergency shutdown mechanisms to halt operations if needed.","version":1}},"settings":{"compilationTarget":{"src/proxies/InverterBeacon_v1.sol":"InverterBeacon_v1"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":750},"remappings":[":@aut/=src/modules/authorizer/",":@df/=lib/deterministic-factory/src/",":@ex/=src/external/",":@fm/=src/modules/fundingManager/",":@lm/=src/modules/logicModule/",":@lm_pc/=src/modules/logicModule/paymentClient/",":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@oz-up/=lib/openzeppelin-contracts-upgradeable/contracts/",":@oz/=lib/openzeppelin-contracts/contracts/",":@pp/=src/modules/paymentProcessor/",":@uma/=lib/uma-protocol/packages/core/contracts/",":deterministic-factory/=lib/deterministic-factory/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":halmos-cheatcodes/=lib/deterministic-factory/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":uma-protocol/=lib/uma-protocol/"]},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","license":"MIT","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"]},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0x5d3e5de9eadfa1f8a892eb2e95bbebd3e4b8c8ada5b76f104d383fea518fa688","license":"MIT","urls":["bzz-raw://cde108962511e6a4d3cfb7b6fb6a36bdcfa300761c17dad2d7dd87d4f8117b48","dweb:/ipfs/Qmf7YxUVK68JedWybWfXvzLCegsD95DtGc3mbpEWkWSMm8"]},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","license":"MIT","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"]},"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":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","license":"MIT","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"]},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","license":"MIT","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"]},"src/proxies/InverterBeacon_v1.sol":{"keccak256":"0xc9b1fa1bb9a7ec2973f758da81bcd391da75b10103b06a406765bf8bd16941ee","license":"LGPL-3.0-only","urls":["bzz-raw://13c2846f96d5ada30b5e2699f277e7052993d919c645bef661cf0ce4df695fab","dweb:/ipfs/Qmf2SkoiDMaKnNw6FRXiFioJCXPS5UfTApbsJL66MbGhXb"]},"src/proxies/interfaces/IInverterBeacon_v1.sol":{"keccak256":"0x23cd7a4ada497ebd9834d521843673881427d563906662156e748366a6a03fb5","license":"LGPL-3.0-only","urls":["bzz-raw://49cbce7e794b38126494ee0c4a26f9807fc284e0e5c59ad8a1a229e60f196e66","dweb:/ipfs/Qma3hZfASQ6Gaa4anDhTmhNA1HPiYSD6eJ9Gnn817rP8VJ"]}},"version":1},"matchId":"17117202","creationMatch":"exact_match","runtimeMatch":"exact_match","verifiedAt":"2026-02-06T16:08:47Z","match":"exact_match","chainId":"1","address":"0xcBE9560F6584f859330275d49014624FE5341Bfd"}