{"abi":[{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"returns\":{\"_0\":\"value of the burner gas limit\"}},\"BURNER_RESERVE()\":{\"returns\":{\"_0\":\"value of the reserve gas\"}},\"FACTORY()\":{\"returns\":{\"_0\":\"address of the factory\"}},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"returns\":{\"_0\":\"address of the network middleware service\"}},\"TYPE()\":{\"returns\":{\"_0\":\"type of the entity\"}},\"VAULT_FACTORY()\":{\"returns\":{\"_0\":\"address of the vault factory\"}},\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"isBurnerHook()\":{\"returns\":{\"_0\":\"if the burner is a hook\"}},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"latest capture timestamp that was slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable amount of the stake\"}},\"vault()\":{\"returns\":{\"_0\":\"address of the vault to perform slashings on\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/core/src/interfaces/slasher/IBaseSlasher.sol\":\"IBaseSlasher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/core/\",\":core/=lib/core/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"BURNER_GAS_LIMIT()":{"returns":{"_0":"value of the burner gas limit"}},"BURNER_RESERVE()":{"returns":{"_0":"value of the reserve gas"}},"FACTORY()":{"returns":{"_0":"address of the factory"}},"NETWORK_MIDDLEWARE_SERVICE()":{"returns":{"_0":"address of the network middleware service"}},"TYPE()":{"returns":{"_0":"type of the entity"}},"VAULT_FACTORY()":{"returns":{"_0":"address of the vault factory"}},"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"isBurnerHook()":{"returns":{"_0":"if the burner is a hook"}},"latestSlashedCaptureTimestamp(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"latest capture timestamp that was slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable amount of the stake"}},"vault()":{"returns":{"_0":"address of the vault to perform slashings on"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/core/","core/=lib/core/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/core/src/interfaces/slasher/IBaseSlasher.sol":"IBaseSlasher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"}},"version":1},"id":50}