@excubiae/contracts
Version:
286 lines (285 loc) • 14.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "HatsPolicy",
"sourceName": "contracts/extensions/hats/HatsPolicy.sol",
"abi": [
{
"inputs": [],
"stateMutability": "payable",
"type": "constructor"
},
{
"inputs": [],
"name": "AlreadyEnforced",
"type": "error"
},
{
"inputs": [],
"name": "AlreadyInitialized",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"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": "subject",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "guarded",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "evidence",
"type": "bytes"
}
],
"name": "Enforced",
"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": true,
"internalType": "address",
"name": "guarded",
"type": "address"
}
],
"name": "TargetSet",
"type": "event"
},
{
"inputs": [],
"name": "BASE_CHECKER",
"outputs": [
{
"internalType": "contract BaseChecker",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "subject",
"type": "address"
},
{
"internalType": "bytes",
"name": "evidence",
"type": "bytes"
}
],
"name": "enforce",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "enforced",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getAppendedBytes",
"outputs": [
{
"internalType": "bytes",
"name": "appendedBytes",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "guarded",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initialized",
"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": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"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"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523380602957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6030816035565b50608e565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6107ec8061009d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637e164204116100715780637e164204146101595780638129fc1c1461016c5780638da5cb5b14610174578063b41a4b191461018a578063ce343deb1461019f578063f2fde38b146101bf57600080fd5b8063158ef93e146100b95780631e898ef1146100db5780633f553ed4146100f0578063715018a61461011357806372f7a0301461011b578063776d1a0114610146575b600080fd5b6000546100c69060ff1681565b60405190151581526020015b60405180910390f35b6100ee6100e93660046105e3565b6101d2565b005b6100c66100fe36600461066a565b60036020526000908152604090205460ff1681565b6100ee61020d565b60015461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100d2565b6100ee61015436600461066a565b610221565b60025461012e906001600160a01b031681565b6100ee6102c4565b60005461010090046001600160a01b031661012e565b6101926102cc565b6040516100d291906106d4565b6040805180820190915260048152634861747360e01b6020820152610192565b6100ee6101cd36600461066a565b6102db565b6001546001600160a01b031633146101fd57604051631f492dbf60e21b815260040160405180910390fd5b61020883838361031e565b505050565b610215610386565b61021f60006103b9565b565b610229610386565b6001600160a01b0381166102505760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b03161561027a5760405163e0f2d7b160e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a19690600090a250565b61021f610412565b60606102d661046e565b905090565b6102e3610386565b6001600160a01b03811661031257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61031b816103b9565b50565b6001600160a01b03831660009081526003602052604090205460ff161561035857604051633440c93360e21b815260040160405180910390fd5b6001600160a01b0383166000908152600360205260409020805460ff19166001179055610208838383610479565b6000546001600160a01b0361010090910416331461021f5760405163118cdaa760e01b8152336004820152602401610309565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61041a61055c565b600061042461046e565b90506000808280602001905181019061043d91906106e7565b9150915061044a826103b9565b600280546001600160a01b0319166001600160a01b03929092169190911790555050565b60606102d63061056d565b60025460405163e2b2408560e01b81526001600160a01b039091169063e2b24085906104ad9086908690869060040161074a565b602060405180830381865afa1580156104ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190610778565b61050b57604051634715494560e01b815260040160405180910390fd5b6001546040516001600160a01b03918216918516907fc013b39287cb7a53f776482ac9573829321f002f31ef8782129b41d60047bda09061054f908690869061079a565b60405180910390a3505050565b61056461059c565b61021f336103b9565b60405164ffffffffff602c19833b0116808252602090810190602d908301843c60408101815101604052919050565b60005460ff16156105bf5760405162dc149f60e41b815260040160405180910390fd5b6000805460ff19166001179055565b6001600160a01b038116811461031b57600080fd5b6000806000604084860312156105f857600080fd5b8335610603816105ce565b9250602084013567ffffffffffffffff81111561061f57600080fd5b8401601f8101861361063057600080fd5b803567ffffffffffffffff81111561064757600080fd5b86602082840101111561065957600080fd5b939660209190910195509293505050565b60006020828403121561067c57600080fd5b8135610687816105ce565b9392505050565b6000815180845260005b818110156106b457602081850181015186830182015201610698565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610687602083018461068e565b600080604083850312156106fa57600080fd5b8251610705816105ce565b6020840151909250610716816105ce565b809150509250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061076f9083018486610721565b95945050505050565b60006020828403121561078a57600080fd5b8151801515811461068757600080fd5b6020815260006107ae602083018486610721565b94935050505056fea26469706673582212206510c648cc785622d45c32613dd836406e2fc371037ff142730358b39b3d40c964736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637e164204116100715780637e164204146101595780638129fc1c1461016c5780638da5cb5b14610174578063b41a4b191461018a578063ce343deb1461019f578063f2fde38b146101bf57600080fd5b8063158ef93e146100b95780631e898ef1146100db5780633f553ed4146100f0578063715018a61461011357806372f7a0301461011b578063776d1a0114610146575b600080fd5b6000546100c69060ff1681565b60405190151581526020015b60405180910390f35b6100ee6100e93660046105e3565b6101d2565b005b6100c66100fe36600461066a565b60036020526000908152604090205460ff1681565b6100ee61020d565b60015461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100d2565b6100ee61015436600461066a565b610221565b60025461012e906001600160a01b031681565b6100ee6102c4565b60005461010090046001600160a01b031661012e565b6101926102cc565b6040516100d291906106d4565b6040805180820190915260048152634861747360e01b6020820152610192565b6100ee6101cd36600461066a565b6102db565b6001546001600160a01b031633146101fd57604051631f492dbf60e21b815260040160405180910390fd5b61020883838361031e565b505050565b610215610386565b61021f60006103b9565b565b610229610386565b6001600160a01b0381166102505760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b03161561027a5760405163e0f2d7b160e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a19690600090a250565b61021f610412565b60606102d661046e565b905090565b6102e3610386565b6001600160a01b03811661031257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61031b816103b9565b50565b6001600160a01b03831660009081526003602052604090205460ff161561035857604051633440c93360e21b815260040160405180910390fd5b6001600160a01b0383166000908152600360205260409020805460ff19166001179055610208838383610479565b6000546001600160a01b0361010090910416331461021f5760405163118cdaa760e01b8152336004820152602401610309565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b61041a61055c565b600061042461046e565b90506000808280602001905181019061043d91906106e7565b9150915061044a826103b9565b600280546001600160a01b0319166001600160a01b03929092169190911790555050565b60606102d63061056d565b60025460405163e2b2408560e01b81526001600160a01b039091169063e2b24085906104ad9086908690869060040161074a565b602060405180830381865afa1580156104ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190610778565b61050b57604051634715494560e01b815260040160405180910390fd5b6001546040516001600160a01b03918216918516907fc013b39287cb7a53f776482ac9573829321f002f31ef8782129b41d60047bda09061054f908690869061079a565b60405180910390a3505050565b61056461059c565b61021f336103b9565b60405164ffffffffff602c19833b0116808252602090810190602d908301843c60408101815101604052919050565b60005460ff16156105bf5760405162dc149f60e41b815260040160405180910390fd5b6000805460ff19166001179055565b6001600160a01b038116811461031b57600080fd5b6000806000604084860312156105f857600080fd5b8335610603816105ce565b9250602084013567ffffffffffffffff81111561061f57600080fd5b8401601f8101861361063057600080fd5b803567ffffffffffffffff81111561064757600080fd5b86602082840101111561065957600080fd5b939660209190910195509293505050565b60006020828403121561067c57600080fd5b8135610687816105ce565b9392505050565b6000815180845260005b818110156106b457602081850181015186830182015201610698565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610687602083018461068e565b600080604083850312156106fa57600080fd5b8251610705816105ce565b6020840151909250610716816105ce565b809150509250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061076f9083018486610721565b95945050505050565b60006020828403121561078a57600080fd5b8151801515811461068757600080fd5b6020815260006107ae602083018486610721565b94935050505056fea26469706673582212206510c648cc785622d45c32613dd836406e2fc371037ff142730358b39b3d40c964736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}