@excubiae/contracts
Version:
1 lines • 6.89 kB
JSON
{"abi":[{"type":"function","name":"setTarget","inputs":[{"name":"_guarded","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trait","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"TargetSet","inputs":[{"name":"guarded","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyEnforced","inputs":[]},{"type":"error","name":"TargetAlreadySet","inputs":[]},{"type":"error","name":"TargetNotSet","inputs":[]},{"type":"error","name":"TargetOnly","inputs":[]},{"type":"error","name":"UnsuccessfulCheck","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"setTarget(address)":"776d1a01","trait()":"ce343deb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyEnforced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetOnly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsuccessfulCheck\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guarded\",\"type\":\"address\"}],\"name\":\"TargetSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_guarded\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trait\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Provides methods for setting and retrieving the protected contract and enforcing checks.\",\"events\":{\"TargetSet(address)\":{\"params\":{\"guarded\":\"Address of the protected contract.\"}}},\"kind\":\"dev\",\"methods\":{\"setTarget(address)\":{\"details\":\"This function is restricted to the owner and can only be called once.\",\"params\":{\"_guarded\":\"The address of the protected contract.\"}},\"trait()\":{\"details\":\"This is typically used to distinguish policy implementations (e.g., \\\"Semaphore\\\").\",\"returns\":{\"_0\":\"The policy trait string.\"}}},\"title\":\"IPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyEnforced()\":[{\"notice\":\"Error thrown when a user is already enforced.\"}],\"TargetAlreadySet()\":[{\"notice\":\"Error thrown when attempting to set the guarded more than once.\"}],\"TargetNotSet()\":[{\"notice\":\"Error thrown when the guarded contract is not set.\"}],\"TargetOnly()\":[{\"notice\":\"Error thrown when a function is restricted to calls from the guarded contract.\"}],\"UnsuccessfulCheck()\":[{\"notice\":\"Error thrown when a validation check fails.\"}],\"ZeroAddress()\":[{\"notice\":\"Error thrown when a zero address is provided where not allowed.\"}]},\"events\":{\"TargetSet(address)\":{\"notice\":\"Emitted when the guarded contract is successfully set.\"}},\"kind\":\"user\",\"methods\":{\"setTarget(address)\":{\"notice\":\"Sets the contract address to be protected by this policy.\"},\"trait()\":{\"notice\":\"Retrieves the policy trait identifier.\"}},\"notice\":\"Core interface for managing policies that protect specific contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPolicy.sol\":\"IPolicy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@semaphore-protocol/=node_modules/@semaphore-protocol/\",\":@solady/=node_modules/solady/\",\":@zk-kit/=node_modules/@zk-kit/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=node_modules/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":poseidon-solidity/=node_modules/poseidon-solidity/\",\":solady/=node_modules/solady/\"]},\"sources\":{\"contracts/interfaces/IPolicy.sol\":{\"keccak256\":\"0x82f96940502cdd880f1eacc03cd8c3895f306283efa907610c899a1f5509f78c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5baf97f88beb3155f244dc301ee040786780bf6762fbaaf569e2e86b17729b3f\",\"dweb:/ipfs/Qmec9wzmmFwkQHDthMo9QaFtYqa7CadjiCP2JMsgFGGaxU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyEnforced"},{"inputs":[],"type":"error","name":"TargetAlreadySet"},{"inputs":[],"type":"error","name":"TargetNotSet"},{"inputs":[],"type":"error","name":"TargetOnly"},{"inputs":[],"type":"error","name":"UnsuccessfulCheck"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"guarded","type":"address","indexed":true}],"type":"event","name":"TargetSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_guarded","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"},{"inputs":[],"stateMutability":"pure","type":"function","name":"trait","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setTarget(address)":{"details":"This function is restricted to the owner and can only be called once.","params":{"_guarded":"The address of the protected contract."}},"trait()":{"details":"This is typically used to distinguish policy implementations (e.g., \"Semaphore\").","returns":{"_0":"The policy trait string."}}},"version":1},"userdoc":{"kind":"user","methods":{"setTarget(address)":{"notice":"Sets the contract address to be protected by this policy."},"trait()":{"notice":"Retrieves the policy trait identifier."}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@semaphore-protocol/=node_modules/@semaphore-protocol/","@solady/=node_modules/solady/","@zk-kit/=node_modules/@zk-kit/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std/=node_modules/forge-std/","hardhat/=node_modules/hardhat/","poseidon-solidity/=node_modules/poseidon-solidity/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":200000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/IPolicy.sol":"IPolicy"},"evmVersion":"prague","libraries":{}},"sources":{"contracts/interfaces/IPolicy.sol":{"keccak256":"0x82f96940502cdd880f1eacc03cd8c3895f306283efa907610c899a1f5509f78c","urls":["bzz-raw://5baf97f88beb3155f244dc301ee040786780bf6762fbaaf569e2e86b17729b3f","dweb:/ipfs/Qmec9wzmmFwkQHDthMo9QaFtYqa7CadjiCP2JMsgFGGaxU"],"license":"MIT"}},"version":1},"id":58}