0 txs
0 calls
constructor
constructor()
functions
azoriusModule
viewfunction azoriusModule() view returns (address)
BASIS_DENOMINATOR
viewfunction BASIS_DENOMINATOR() view returns (uint256)
basisNumerator
viewfunction basisNumerator() view returns (uint256)
getProposalVotes
viewfunction getProposalVotes(uint32 _proposalId) view returns (uint256 noVotes, uint256 yesVotes, uint256 abstainVotes, uint32 startBlock, uint32 endBlock, uint256 votingSupply)
getProposalVotingSupply
viewfunction getProposalVotingSupply(uint32 _proposalId) view returns (uint256)
getVersion
viewfunction getVersion() view returns (uint16)
getVotingWeight
viewfunction getVotingWeight(address _voter, uint32 _proposalId) view returns (uint256)
getWhitelistedHatIds
viewfunction getWhitelistedHatIds() view returns (uint256[])
governanceToken
viewfunction governanceToken() view returns (address)
hasVoted
viewfunction hasVoted(uint32 _proposalId, address _address) view returns (bool)
hatsContract
viewfunction hatsContract() view returns (address)
isPassed
viewfunction isPassed(uint32 _proposalId) view returns (bool)
isProposer
viewfunction isProposer(address _address) view returns (bool)
isWearingWhitelistedHat
viewfunction isWearingWhitelistedHat(address _address) view returns (bool)
lightAccountFactory
viewfunction lightAccountFactory() view returns (address)
meetsBasis
viewfunction meetsBasis(uint256 _yesVotes, uint256 _noVotes) view returns (bool)
meetsQuorum
viewfunction meetsQuorum(uint256 _totalSupply, uint256 _yesVotes, uint256 _abstainVotes) view returns (bool)
owner
viewfunction owner() view returns (address)
QUORUM_DENOMINATOR
viewfunction QUORUM_DENOMINATOR() view returns (uint256)
quorumNumerator
viewfunction quorumNumerator() view returns (uint256)
quorumVotes
viewfunction quorumVotes(uint32 _proposalId) view returns (uint256)
requiredProposerWeight
viewfunction requiredProposerWeight() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
votingEndBlock
viewfunction votingEndBlock(uint32 _proposalId) view returns (uint32)
votingPeriod
viewfunction votingPeriod() view returns (uint32)
initializeProposal
nonpayablefunction initializeProposal(bytes _data)
renounceOwnership
nonpayablefunction renounceOwnership()
setAzorius
nonpayablefunction setAzorius(address _azoriusModule)
setUp
nonpayablefunction setUp(bytes initializeParams)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unwhitelistHat
nonpayablefunction unwhitelistHat(uint256 _hatId)
updateBasisNumerator
nonpayablefunction updateBasisNumerator(uint256 _basisNumerator)
updateQuorumNumerator
nonpayablefunction updateQuorumNumerator(uint256 _quorumNumerator)
updateRequiredProposerWeight
nonpayablefunction updateRequiredProposerWeight(uint256 _requiredProposerWeight)
updateVotingPeriod
nonpayablefunction updateVotingPeriod(uint32 _votingPeriod)
vote
nonpayablefunction vote(uint32 _proposalId, uint8 _voteType)
whitelistHat
nonpayablefunction whitelistHat(uint256 _hatId)
events
AzoriusSet
event AzoriusSet(address indexed azoriusModule)
BasisNumeratorUpdated
event BasisNumeratorUpdated(uint256 basisNumerator)
HatUnwhitelisted
event HatUnwhitelisted(uint256 hatId)
HatWhitelisted
event HatWhitelisted(uint256 hatId)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProposalInitialized
event ProposalInitialized(uint32 proposalId, uint32 votingEndBlock)
QuorumNumeratorUpdated
event QuorumNumeratorUpdated(uint256 quorumNumerator)
RequiredProposerWeightUpdated
event RequiredProposerWeightUpdated(uint256 requiredProposerWeight)
StrategySetUp
event StrategySetUp(address indexed azoriusModule, address indexed owner)
Voted
event Voted(address voter, uint32 proposalId, uint8 voteType, uint256 weight)
VotingPeriodUpdated
event VotingPeriodUpdated(uint32 votingPeriod)
errors
AlreadyVoted
error AlreadyVoted()
HatAlreadyWhitelisted
error HatAlreadyWhitelisted()
HatNotWhitelisted
error HatNotWhitelisted()
InvalidBasisNumerator
error InvalidBasisNumerator()
InvalidCallData
error InvalidCallData()
InvalidInnerCallDataLength
error InvalidInnerCallDataLength()
InvalidProposal
error InvalidProposal()
InvalidQuorumNumerator
error InvalidQuorumNumerator()
InvalidSmartAccount
error InvalidSmartAccount()
InvalidTokenAddress
error InvalidTokenAddress()
InvalidUserOpCallDataLength
error InvalidUserOpCallDataLength()
InvalidVote
error InvalidVote()
MissingHatsContract
error MissingHatsContract()
NoHatsWhitelisted
error NoHatsWhitelisted()
OnlyAzorius
error OnlyAzorius()
VotingEnded
error VotingEnded()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000054565b6200002662000054565b6200003062000054565b6200003a62000054565b6200004462000054565b6200004e62000054565b62000116565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611f5a80620001266000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80638081be9111610130578063a4f9edbf116100b8578063d3c22b381161007c578063d3c22b38146104b7578063deb61c15146104fb578063e8575a7f14610544578063f2fde38b14610557578063f96dae0a1461056a57600080fd5b8063a4f9edbf1461046c578063a7713a701461047f578063a77a81d014610488578063bf7e2c7f1461049b578063ca1dc30b146104a457600080fd5b80639767fb72116100ff5780639767fb721461041757806397e39fef1461042a5780639bff4df41461043d5780639dd783c214610446578063a09c4f681461045957600080fd5b80638081be91146103935780638a2f2c8a146103e05780638da5cb5b146103f3578063918f84bf1461040457600080fd5b806353a8b320116101b35780636fef541a116101825780636fef541a14610393578063715018a61461039d57806372d75d76146103a557806374ec29a0146103ba5780637e902d57146103cd57600080fd5b806353a8b3201461031157806355a9dbd914610324578063589fe72e1461035557806366b629551461036857600080fd5b80630d8e6e2c116101fa5780630d8e6e2c146102b65780631236af7c146102c557806333f48a5e146102d857806337938ab3146102eb57806344cfa6e5146102fe57600080fd5b806301ffc9a71461022c57806302a251a31461025457806306f3f9e61461028057806308453ad214610295575b600080fd5b61023f61023a3660046117f8565b61057d565b60405190151581526020015b60405180910390f35b60685461026b90600160a01b900463ffffffff1681565b60405163ffffffff909116815260200161024b565b61029361028e366004611822565b61058e565b005b6102a86102a336600461184d565b6105a2565b60405190815260200161024b565b6040516001815260200161024b565b6102a86102d336600461184d565b610625565b6102936102e636600461184d565b61064b565b6102936102f936600461187f565b61065c565b61029361030c366004611822565b6106ae565b61023f61031f36600461184d565b6107cb565b61026b61033236600461184d565b63ffffffff9081166000908152606a602052604090205464010000000090041690565b61023f61036336600461187f565b610859565b60655461037b906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b6102a8620f424081565b610293610934565b6103ad610948565b60405161024b91906118d7565b61023f6103c836600461187f565b6109a0565b606b5461037b906001600160a01b031681565b6102936103ee366004611822565b6109ab565b6033546001600160a01b031661037b565b61023f6104123660046118ea565b6109bc565b61029361042536600461190c565b6109ee565b606c5461037b906001600160a01b031681565b6102a860695481565b61023f61045436600461194b565b610a15565b610293610467366004611822565b610a47565b61029361047a3660046119be565b610a58565b6102a860665481565b6102936104963660046119be565b610b43565b6102a860675481565b6102a86104b2366004611a53565b610c2a565b61023f6104c5366004611a81565b63ffffffff82166000908152606a602090815260408083206001600160a01b038516845260040190915290205460ff1692915050565b61050e61050936600461184d565b610cbf565b6040805196875260208701959095529385019290925263ffffffff908116606085015216608083015260a082015260c00161024b565b610293610552366004611822565b610d0e565b61029361056536600461187f565b610d1f565b60685461037b906001600160a01b031681565b600061058882610d9a565b92915050565b610596610dbf565b61059f81610e19565b50565b60685463ffffffff8281166000908152606a6020526040808220549051632394e7a360e21b815292166004830152916001600160a01b031690638e539e8c90602401602060405180830381865afa158015610601573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611aaf565b6000620f4240610634836105a2565b6066546106419190611ade565b6105889190611af5565b610653610dbf565b61059f81610e79565b610664610dbf565b606580546001600160a01b0319166001600160a01b0383169081179091556040517fac8d831a6ed53a98387842e08d9e0893c1d478f4a3710b254e22bd58c06b269090600090a250565b6106b6610dbf565b6000805b606d548110156107745782606d82815481106106d8576106d8611b17565b90600052602060002001540361076257606d80546106f890600190611b2d565b8154811061070857610708611b17565b9060005260206000200154606d828154811061072657610726611b17565b600091825260209091200155606d80548061074357610743611b40565b6001900381819060005260206000200160009055905560019150610774565b8061076c81611b56565b9150506106ba565b508061079357604051634b8d041f60e01b815260040160405180910390fd5b6040518281527ffcebee8b5aeaffbed7a0040c626c7f0c6319f022779a749d81fedda71d2a8a4b906020015b60405180910390a15050565b63ffffffff8082166000908152606a6020526040812054909164010000000090910416431180156108285750610828610803836105a2565b63ffffffff84166000908152606a602052604090206002810154600390910154610a15565b8015610588575063ffffffff82166000908152606a60205260409020600281015460019091015461058891906109bc565b6000805b606d5481101561092b57606c54606d80546001600160a01b0390921691634352409a9186918590811061089257610892611b17565b6000918252602090912001546040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b9190611b6f565b156109195750600192915050565b8061092381611b56565b91505061085d565b50600092915050565b61093c610dbf565b6109466000610ecd565b565b6060606d80548060200260200160405190810160405280929190818152602001828054801561099657602002820191906000526020600020905b815481526020019060010190808311610982575b5050505050905090565b600061058882610859565b6109b3610dbf565b61059f81610f1f565b6000620f424060675483856109d19190611b91565b6109db9190611ade565b6109e59190611af5565b90921192915050565b60006109f933610f54565b9050610a10838284610a0b8588610c2a565b610f73565b505050565b6000620f424060665485610a299190611ade565b610a339190611af5565b610a3d8385611b91565b1015949350505050565b610a4f610dbf565b61059f81611192565b600080600080600080600080600089806020019051810190610a7a9190611c24565b985098509850985098509850985098509850610b0d8989898960008a8a88604051602001610af99897969594939291906001600160a01b0398891681529688166020880152948716604087015263ffffffff93909316606086015260ff91909116608085015260a084015260c083015290911660e08201526101000190565b604051602081830303815290604052611254565b610b378383604051602001610b23929190611ced565b604051602081830303815290604052611318565b50505050505050505050565b6065546001600160a01b03163314610b6e576040516358c30ce160e01b815260040160405180910390fd5b600081806020019051810190610b849190611d19565b606854909150600090610ba490600160a01b900463ffffffff1643611d36565b63ffffffff8381166000818152606a6020908152604091829020805467ffffffffffffffff191664010000000087871690810263ffffffff1916919091174390961695909517905581519283528201929092529192507f80d0ad93bba25e53bf67fa9f2d13df59f04795ec2f91b9b3c1f607666daf9d64910160405180910390a1505050565b60685463ffffffff8281166000908152606a6020526040808220549051630748d63560e31b81526001600160a01b03878116600483015291909316602484015290921690633a46b1a890604401602060405180830381865afa158015610c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb89190611aaf565b9392505050565b63ffffffff8082166000908152606a6020526040812060018101546002820154600383015492549194909382821692640100000000900490911690610d03876105a2565b905091939550919395565b610d16610dbf565b61059f816113de565b610d27610dbf565b6001600160a01b038116610d915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61059f81610ecd565b60006001600160e01b03198216632cfc661d60e11b148061058857506105888261144e565b6033546001600160a01b031633146109465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d88565b620f4240811115610e3d57604051630d2a3fcb60e41b815260040160405180910390fd5b60668190556040518181527f0cc18e3862a55e514917eb8f248561dd65e0fbbba65f5468f203e92193635dd3906020015b60405180910390a150565b6068805463ffffffff60a01b1916600160a01b63ffffffff8416908102919091179091556040519081527f70770ce479f70673c3ed8fff63cfb758a6ffdddc30cab7c63d54c8d825e3948890602001610e6e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60698190556040518181527f93deb5027728f04c9fd8d7bcea2efb36cc7a6a7876236649f2952de0aa89a01190602001610e6e565b6000806000610f6284611459565b9150915081610cb857509192915050565b63ffffffff8085166000908152606a602052604081205464010000000090049091169003610fb457604051631dc0650160e31b815260040160405180910390fd5b63ffffffff8085166000908152606a6020526040902054640100000000900416431115610ff457604051637a19ed0560e01b815260040160405180910390fd5b63ffffffff84166000908152606a602090815260408083206001600160a01b038716845260040190915290205460ff161561104257604051637c9a1cf960e01b815260040160405180910390fd5b63ffffffff84166000908152606a602090815260408083206001600160a01b03871684526004019091529020805460ff1916600117905560ff82166110b45763ffffffff84166000908152606a6020526040812060010180548392906110a9908490611b91565b909155506111359050565b60001960ff8316016110e85763ffffffff84166000908152606a6020526040812060020180548392906110a9908490611b91565b60011960ff83160161111c5763ffffffff84166000908152606a6020526040812060030180548392906110a9908490611b91565b604051636aee863360e11b815260040160405180910390fd5b604080516001600160a01b038516815263ffffffff8616602082015260ff8416818301526060810183905290517fe82b577bd384111662dd034b9114cbe59b26ea201f009d385006518ed28bed819181900360800190a150505050565b60005b606d548110156111ee5781606d82815481106111b3576111b3611b17565b9060005260206000200154036111dc5760405163634a456360e01b815260040160405180910390fd5b806111e681611b56565b915050611195565b50606d80546001810182556000919091527f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d8018190556040518181527f30590a8684cec4e5a2b48765f391c996b9a004652478a8f41dc46658ccb699ed90602001610e6e565b600080600080600080600080888060200190518101906112749190611d5a565b604080516001600160a01b03808b166020830152808a1692820192909252908716606082015263ffffffff8616608082015260a0810185905260c0810184905260e08101839052979f50959d50939b5091995097509550935091506112eb906101000160405160208183030381529060405261156c565b61130d81606b80546001600160a01b0319166001600160a01b03831617905550565b505050505050505050565b6000808280602001905181019061132f9190611ded565b90925090506001600160a01b03821661135b5760405163101c05e560e21b815260040160405180910390fd5b606c80546001600160a01b0319166001600160a01b038416179055805160000361139857604051632a2b50e760e01b815260040160405180910390fd5b60005b81518110156113d8576113c68282815181106113b9576113b9611b17565b6020026020010151611192565b806113d081611b56565b91505061139b565b50505050565b620f42408111806113fb57506113f86002620f4240611af5565b81105b15611419576040516302396b6b60e61b815260040160405180910390fd5b60678190556040518181527f406c076eac4d3dde1c5d55793e80239daa8c60ee971390ce3d9f90ca4206295390602001610e6e565b600061058882611769565b600080823b8082036114715750600093849350915050565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114cb575060408051601f3d908101601f191682019092526114c891810190611e3e565b60015b6114db5750600093849350915050565b606b5460405163119709c360e31b81526001600160a01b038381166004830152600060248301819052921690638cb84e1890604401602060405180830381865afa15801561152d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115519190611e3e565b6001600160a01b039081169616959095149590945092505050565b600054610100900460ff161580801561158c5750600054600160ff909116105b806115a65750303b1580156115a6575060005460ff166001145b6116095760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d88565b6000805460ff19166001179055801561162c576000805461ff0019166101001790555b60008060008060008060008880602001905181019061164b9190611e5b565b959c50939a5091985096509450925090506001600160a01b03861661168357604051630f58058360e11b815260040160405180910390fd5b606880546001600160a01b0319166001600160a01b0388161790556116a661179e565b6116af87610d1f565b6116b885610664565b6116c182610e19565b6116ca816113de565b6116d384610e79565b6116dc83610f1f565b866001600160a01b0316856001600160a01b03167fca32f512f02914f6bc16a49e786443029061b9adc5a987fd2f6efa56c0116a1660405160405180910390a3505050505050508015611765576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107bf565b5050565b60006001600160e01b031982166303639b8b60e21b148061058857506301ffc9a760e01b6001600160e01b0319831614610588565b600054610100900460ff166117c55760405162461bcd60e51b8152600401610d8890611ed9565b610946600054610100900460ff166117ef5760405162461bcd60e51b8152600401610d8890611ed9565b61094633610ecd565b60006020828403121561180a57600080fd5b81356001600160e01b031981168114610cb857600080fd5b60006020828403121561183457600080fd5b5035919050565b63ffffffff8116811461059f57600080fd5b60006020828403121561185f57600080fd5b8135610cb88161183b565b6001600160a01b038116811461059f57600080fd5b60006020828403121561189157600080fd5b8135610cb88161186a565b600081518084526020808501945080840160005b838110156118cc578151875295820195908201906001016118b0565b509495945050505050565b602081526000610cb8602083018461189c565b600080604083850312156118fd57600080fd5b50508035926020909101359150565b6000806040838503121561191f57600080fd5b823561192a8161183b565b9150602083013560ff8116811461194057600080fd5b809150509250929050565b60008060006060848603121561196057600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156119b6576119b6611977565b604052919050565b600060208083850312156119d157600080fd5b823567ffffffffffffffff808211156119e957600080fd5b818501915085601f8301126119fd57600080fd5b813581811115611a0f57611a0f611977565b611a21601f8201601f1916850161198d565b91508082528684828501011115611a3757600080fd5b8084840185840137600090820190930192909252509392505050565b60008060408385031215611a6657600080fd5b8235611a718161186a565b915060208301356119408161183b565b60008060408385031215611a9457600080fd5b8235611a9f8161183b565b915060208301356119408161186a565b600060208284031215611ac157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761058857610588611ac8565b600082611b1257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b8181038181111561058857610588611ac8565b634e487b7160e01b600052603160045260246000fd5b600060018201611b6857611b68611ac8565b5060010190565b600060208284031215611b8157600080fd5b81518015158114610cb857600080fd5b8082018082111561058857610588611ac8565b600082601f830112611bb557600080fd5b8151602067ffffffffffffffff821115611bd157611bd1611977565b8160051b611be082820161198d565b9283528481018201928281019087851115611bfa57600080fd5b83870192505b84831015611c1957825182529183019190830190611c00565b979650505050505050565b60008060008060008060008060006101208a8c031215611c4357600080fd5b8951611c4e8161186a565b60208b0151909950611c5f8161186a565b60408b0151909850611c708161186a565b60608b0151909750611c818161183b565b8096505060808a0151945060a08a0151935060c08a0151611ca18161186a565b60e08b015190935067ffffffffffffffff811115611cbe57600080fd5b611cca8c828d01611ba4565b9250506101008a0151611cdc8161186a565b809150509295985092959850929598565b6001600160a01b0383168152604060208201819052600090611d119083018461189c565b949350505050565b600060208284031215611d2b57600080fd5b8151610cb88161183b565b63ffffffff818116838216019080821115611d5357611d53611ac8565b5092915050565b600080600080600080600080610100898b031215611d7757600080fd5b8851611d828161186a565b60208a0151909850611d938161186a565b60408a0151909750611da48161186a565b60608a0151909650611db58161183b565b809550506080890151935060a0890151925060c0890151915060e0890151611ddc8161186a565b809150509295985092959890939650565b60008060408385031215611e0057600080fd5b8251611e0b8161186a565b602084015190925067ffffffffffffffff811115611e2857600080fd5b611e3485828601611ba4565b9150509250929050565b600060208284031215611e5057600080fd5b8151610cb88161186a565b600080600080600080600060e0888a031215611e7657600080fd5b8751611e818161186a565b6020890151909750611e928161186a565b6040890151909650611ea38161186a565b6060890151909550611eb48161183b565b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220d2a58de389f25ff0b1a142942bccaa749fef6b255f199daa45fe9c3aad2c29f864736f6c63430008130033