0 txs
2 calls
constructor
constructor(address _dao, (uint8 id, uint8 op, uint240 value, bytes32 permissionId)[] _rules)
functions
dao
viewfunction dao() view returns (address)
decodeRuleValue
purefunction decodeRuleValue(uint256 _x) pure returns (uint32 a, uint32 b, uint32 c)
encodeIfElse
purefunction encodeIfElse(uint256 startingRuleIndex, uint256 successRuleIndex, uint256 failureRuleIndex) pure returns (uint240)
encodeLogicalOperator
purefunction encodeLogicalOperator(uint256 ruleIndex1, uint256 ruleIndex2) pure returns (uint240)
getRules
viewfunction getRules() view returns (tuple[])
isGranted
viewfunction isGranted(address _where, address _who, bytes32 _permissionId, bytes) view returns (bool isPermitted)
protocolVersion
purefunction protocolVersion() pure returns (uint8[3])
supportsInterface
viewfunction supportsInterface(bytes4 _interfaceId) view returns (bool)
UPDATE_RULES_PERMISSION_ID
viewfunction UPDATE_RULES_PERMISSION_ID() view returns (bytes32)
initialize
nonpayablefunction initialize(address _dao, tuple[] _rules)
updateRules
nonpayablefunction updateRules(tuple[] _rules)
events
Initialized
event Initialized(uint8 version)
RulesUpdated
event RulesUpdated((uint8 id, uint8 op, uint240 value, bytes32 permissionId)[] rules)
errors
DaoUnauthorized
error DaoUnauthorized(address dao, address where, address who, bytes32 permissionId)
creation bytecode
0x608060405234801561000f575f5ffd5b50604051611d38380380611d3883398101604081905261002e9161058d565b610038828261003f565b50506107c5565b5f54610100900460ff161580801561005d57505f54600160ff909116105b806100765750303b15801561007657505f5460ff166001145b6100de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156100ff575f805461ff0019166101001790555b61010883610162565b81511561011857610118826101ee565b801561015d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b5f54610100900460ff166101cc5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100d5565b603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f5b81518110156102a3575f82828151811061020c5761020c6106b3565b6020026020010151905060ca60ff16815f015160ff160361029a57604080516020810182525f808252915161024b9160019160029183916024016106f5565b60408051601f198184030181529181526020820180516001600160e01b039081166302675fdd60e41b1790915290840151919250610296906001600160a01b0383169084906102b016565b5050505b506001016101f0565b506102ad816102dc565b50565b60606102d58383604051806060016040528060258152602001611d13602591396103b6565b9392505050565b6102e760975f6104d5565b5f5b815181101561037b576097828281518110610306576103066106b3565b6020908102919091018101518254600181810185555f94855293839020825160029092020180549383015160408401516001600160f01b0316620100000261ffff60ff9283166101000261ffff19909716929094169190911794909417919091169290921782556060015190820155016102e9565b507f6517634f0cf2fee5bec4e10d9a05e7a61f4e8610d8db2b83bc84416b3dc0f666816040516103ab9190610727565b60405180910390a150565b60605f5f856001600160a01b0316856040516103d2919061079d565b5f60405180830381855afa9150503d805f811461040a576040519150601f19603f3d011682016040523d82523d5f602084013e61040f565b606091505b5090925090506104218683838761042b565b9695505050505050565b606083156104995782515f03610492576001600160a01b0385163b6104925760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100d5565b50816104a3565b6104a383836104ab565b949350505050565b8151156104bb5781518083602001fd5b8060405162461bcd60e51b81526004016100d591906107b3565b5080545f8255600202905f5260205f20908101906102ad91905b80821115610508575f80825560018201556002016104ef565b5090565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156105425761054261050c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156105705761057061050c565b604052919050565b805160ff81168114610588575f5ffd5b919050565b5f5f6040838503121561059e575f5ffd5b82516001600160a01b03811681146105b4575f5ffd5b60208401519092506001600160401b038111156105cf575f5ffd5b8301601f810185136105df575f5ffd5b80516001600160401b038111156105f8576105f861050c565b61060760208260051b01610548565b8082825260208201915060208360071b850101925087831115610628575f5ffd5b6020840193505b828410156106a55760808489031215610646575f5ffd5b61064e610520565b61065785610578565b815261066560208601610578565b602082015260408501516001600160f01b0381168114610683575f5ffd5b604082015260608581015190820152825260809093019260209091019061062f565b809450505050509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610421908301846106c7565b602080825282518282018190525f918401906040840190835b8181101561079257835160ff815116845260ff602082015116602085015260018060f01b0360408201511660408501526060810151606085015250608083019250602084019350600181019050610740565b509095945050505050565b5f82518060208501845e5f920191825250919050565b602081525f6102d560208301846106c7565b611541806107d25f395ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80634162169f1161006e5780634162169f1461016957806345e2984a146101845780638306b5f114610199578063b580939c146101ae578063d09e5361146101e3578063e87c7fa8146101f6575f5ffd5b806301ffc9a7146100aa5780631498b514146100d257806323e8cefc146101165780632675fdd0146101415780632ae9c60014610154575b5f5ffd5b6100bd6100b8366004610f64565b610209565b60405190151581526020015b60405180910390f35b6100ef6100e0366004610f8b565b90602082901c90604083901c90565b6040805163ffffffff948516815292841660208401529216918101919091526060016100c9565b610129610124366004610fa2565b610233565b6040516001600160f01b0390911681526020016100c9565b6100bd61014f366004610fe6565b61025b565b61015c6102b6565b6040516100c9919061107b565b6033546040516001600160a01b0390911681526020016100c9565b61018c6102df565b6040516100c991906110ae565b6101ac6101a7366004611124565b61036f565b005b6101d57fd3d98e95f3486fc234d80c098cf0d2a0a3fb187833d7e9cc930f8c4f8335a0e781565b6040519081526020016100c9565b6101296101f1366004611195565b61040a565b6101ac61020436600461128e565b610419565b5f6001600160e01b031982166328fcde5960e21b148061022d575061022d8261053b565b92915050565b5f604082901b610247602085901b86611357565b6102519190611357565b90505b9392505050565b5f6102646102df565b515f03610273575060016102ad565b6102aa5f878787836040519080825280602002602001820160405280156102a4578160200160208202803683370190505b50610589565b90505b95945050505050565b6102be610f0f565b506040805160608101825260018152600460208201525f9181019190915290565b60606097805480602002602001604051908101604052809291908181526020015f905b82821015610366575f8481526020908190206040805160808101825260028602909201805460ff8082168552610100820416848601526201000090046001600160f01b03169183019190915260019081015460608301529083529092019101610302565b50505050905090565b6033547fd3d98e95f3486fc234d80c098cf0d2a0a3fb187833d7e9cc930f8c4f8335a0e7906103ab906001600160a01b03163033845f36610778565b6104058383808060200260200160405190810160405280939291908181526020015f905b828210156103fb576103ec60808302860136819003810190611376565b815260200190600101906103cf565b5050505050610832565b505050565b5f610254602083901b84611357565b5f54610100900460ff161580801561043757505f54600160ff909116105b806104505750303b15801561045057505f5460ff166001145b6104b85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156104d9575f805461ff0019166101001790555b6104e2836108ec565b8151156104f2576104f282610832565b8015610405575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b5f6001600160e01b031982166302675fdd60e41b148061056a57506001600160e01b03198216621574e360e91b145b8061022d57506301ffc9a760e01b6001600160e01b031983161461022d565b5f5f60978763ffffffff16815481106105a4576105a4611390565b5f918252602091829020604080516080810182526002909302909101805460ff8082168086526101008304909116958501959095526001600160f01b03620100009091041691830191909152600101546060820152915060ca1901610618576106108187878787610978565b9150506102ad565b604081015181515f916001600160f01b03169060ff1660c9190161067c57606083015160408401515f9061065c908b8b85156106545785610656565b8b5b8b610b5b565b905080610669575f61066c565b60015b60ff16935060019250505061070b565b825160ff1660c719016106915743915061070b565b825160ff1660c819016106a65742915061070b565b825160ff1660cb19016106c85782604001516001600160f01b0316915061070b565b8451835160ff16106106df575f93505050506102ad565b84835f015160ff16815181106106f7576106f7611390565b60200260200101516001600160f01b031691505b6007836020015160ff16600c811115610726576107266113a4565b600c811115610737576107376113a4565b036107485750151591506102ad9050565b61076b8282856020015160ff16600c811115610766576107666113a4565b610c19565b9998505050505050505050565b604051637ef7c88360e11b81526001600160a01b0387169063fdef9106906107ac90889088908890889088906004016113b8565b602060405180830381865afa1580156107c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107eb9190611408565b61082a57604051630cb6f8ed60e21b81526001600160a01b038088166004830152808716602483015285166044820152606481018490526084016104af565b505050505050565b5f5b81518110156108df575f82828151811061085057610850611390565b6020026020010151905060ca60ff16815f015160ff16036108d657604080516020810182525f808252915161088f916001916002918391602401611455565b60408051601f198184030181529181526020820180516001600160e01b03166302675fdd60e41b1790528301519091506108d26001600160a01b03821683610cf2565b5050505b50600101610834565b506108e981610d17565b50565b5f54610100900460ff166109565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016104af565b603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f600c866020015160ff16600c811115610994576109946113a4565b600c8111156109a5576109a56113a4565b03610a07575f5f5f6109cd89604001516001600160f01b031690602082901c90604083901c90565b9250925092505f6109e184898b8a8a610589565b90506109fc816109f157826109f3565b835b8a8a8a8a610589565b9450505050506102ad565b5f5f610a2988604001516001600160f01b031690602082901c90604083901c90565b5090925090505f610a3d8389898989610589565b90506008896020015160ff16600c811115610a5a57610a5a6113a4565b600c811115610a6b57610a6b6113a4565b03610a7b571592506102ad915050565b808015610ab15750600a896020015160ff16600c811115610a9e57610a9e6113a4565b600c811115610aaf57610aaf6113a4565b145b15610ac257600193505050506102ad565b80158015610af957506009896020015160ff16600c811115610ae657610ae66113a4565b600c811115610af757610af76113a4565b145b15610b09575f93505050506102ad565b5f610b17838a8a8a8a610589565b9050600b8a6020015160ff16600c811115610b3457610b346113a4565b600c811115610b4557610b456113a4565b0361076b571515901515141592506102ad915050565b5f5f632675fdd060e01b86868686604051602001610b799190611487565b60408051601f1981840301815290829052610b9994939291602401611455565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217825280519092505f91829182918b5afa905080610be9575f925050506102ad565b3d60208114610bfd575f93505050506102ad565b5f604051825f823e80515f9091529a9950505050505050505050565b5f600182600c811115610c2e57610c2e6113a4565b03610c3c5750828214610254565b600282600c811115610c5057610c506113a4565b03610c5f575082821415610254565b600382600c811115610c7357610c736113a4565b03610c815750818311610254565b600482600c811115610c9557610c956113a4565b03610ca35750818310610254565b600582600c811115610cb757610cb76113a4565b03610cc6575081831015610254565b600682600c811115610cda57610cda6113a4565b03610ce9575081831115610254565b505f9392505050565b606061025483836040518060600160405280602581526020016114e760259139610df1565b610d2260975f610f2d565b5f5b8151811015610db6576097828281518110610d4157610d41611390565b6020908102919091018101518254600181810185555f94855293839020825160029092020180549383015160408401516001600160f01b0316620100000261ffff60ff9283166101000261ffff1990971692909416919091179490941791909116929092178255606001519082015501610d24565b507f6517634f0cf2fee5bec4e10d9a05e7a61f4e8610d8db2b83bc84416b3dc0f66681604051610de691906110ae565b60405180910390a150565b60605f5f856001600160a01b031685604051610e0d91906114be565b5f60405180830381855afa9150503d805f8114610e45576040519150601f19603f3d011682016040523d82523d5f602084013e610e4a565b606091505b5091509150610e5b86838387610e65565b9695505050505050565b60608315610ed35782515f03610ecc576001600160a01b0385163b610ecc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104af565b5081610edd565b610edd8383610ee5565b949350505050565b815115610ef55781518083602001fd5b8060405162461bcd60e51b81526004016104af91906114d4565b60405180606001604052806003906020820280368337509192915050565b5080545f8255600202905f5260205f20908101906108e991905b80821115610f60575f8082556001820155600201610f47565b5090565b5f60208284031215610f74575f5ffd5b81356001600160e01b031981168114610254575f5ffd5b5f60208284031215610f9b575f5ffd5b5035919050565b5f5f5f60608486031215610fb4575f5ffd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114610fe1575f5ffd5b919050565b5f5f5f5f5f60808688031215610ffa575f5ffd5b61100386610fcb565b945061101160208701610fcb565b935060408601359250606086013567ffffffffffffffff811115611033575f5ffd5b8601601f81018813611043575f5ffd5b803567ffffffffffffffff811115611059575f5ffd5b88602082840101111561106a575f5ffd5b959894975092955050506020019190565b6060810181835f5b60038110156110a557815160ff16835260209283019290910190600101611083565b50505092915050565b602080825282518282018190525f918401906040840190835b8181101561111957835160ff815116845260ff602082015116602085015260018060f01b03604082015116604085015260608101516060850152506080830192506020840193506001810190506110c7565b509095945050505050565b5f5f60208385031215611135575f5ffd5b823567ffffffffffffffff81111561114b575f5ffd5b8301601f8101851361115b575f5ffd5b803567ffffffffffffffff811115611171575f5ffd5b8560208260071b8401011115611185575f5ffd5b6020919091019590945092505050565b5f5f604083850312156111a6575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156111f2576111f26111b5565b604052919050565b803560ff81168114610fe1575f5ffd5b5f6080828403121561121a575f5ffd5b6040516080810167ffffffffffffffff8111828210171561123d5761123d6111b5565b60405290508061124c836111fa565b815261125a602084016111fa565b602082015260408301356001600160f01b0381168114611278575f5ffd5b6040820152606092830135920191909152919050565b5f5f6040838503121561129f575f5ffd5b6112a883610fcb565b9150602083013567ffffffffffffffff8111156112c3575f5ffd5b8301601f810185136112d3575f5ffd5b803567ffffffffffffffff8111156112ed576112ed6111b5565b6112fc60208260051b016111c9565b8082825260208201915060208360071b85010192508783111561131d575f5ffd5b6020840193505b8284101561134957611336888561120a565b8252602082019150608084019350611324565b809450505050509250929050565b8082018082111561022d57634e487b7160e01b5f52601160045260245ffd5b5f60808284031215611386575f5ffd5b610254838361120a565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03868116825285166020820152604081018490526080606082018190528101829052818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215611418575f5ffd5b81518015158114610254575f5ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906102aa90830184611427565b602080825282518282018190525f918401906040840190835b818110156111195783518352602093840193909201916001016114a0565b5f82518060208501845e5f920191825250919050565b602081525f610254602083018461142756fe416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a2646970667358221220d1a46a7008706576b664dc11dd9f0fda1e221df80765bc29b6c6091a8f8bb6a464736f6c634300081c0033416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000