0 txs
610.5k calls
constructor
No constructor.
functions
allowance
purefunction allowance(address owner, address spender) pure returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256 votingUnits)
checkpoints
viewfunction checkpoints(address account, uint32 pos) view returns (tuple)
CLOCK_MODE
viewfunction CLOCK_MODE() view returns (string)
clock
viewfunction clock() view returns (uint48)
delegates
viewfunction delegates(address account) view returns (address)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
esXaiAddress
viewfunction esXaiAddress() view returns (address)
getPastTotalSupply
viewfunction getPastTotalSupply(uint256 timepoint) view returns (uint256)
getPastVotes
viewfunction getPastVotes(address account, uint256 timepoint) view returns (uint256)
getVotes
viewfunction getVotes(address account) view returns (uint256)
name
purefunction name() pure returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(address account) view returns (uint32)
poolFactoryAddress
viewfunction poolFactoryAddress() view returns (address)
symbol
purefunction symbol() pure returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
weights
viewfunction weights(address) view returns (uint256)
xaiAddress
viewfunction xaiAddress() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
delegate
nonpayablefunction delegate(address delegatee)
delegateBySig
nonpayablefunction delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
initialize
nonpayablefunction initialize(address _xaiAddress, address _esXaiAddress, address _poolFactoryAddress)
onUpdateBalance
nonpayablefunction onUpdateBalance(address from, address to, uint256 value)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
events
DelegateChanged
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
DelegateVotesChanged
event DelegateVotesChanged(address indexed delegate, uint256 previousVotes, uint256 newVotes)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint64 version)
errors
CheckpointUnorderedInsertion
error CheckpointUnorderedInsertion()
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ERC20ExceededSafeSupply
error ERC20ExceededSafeSupply(uint256 increasedSupply, uint256 cap)
ERC5805FutureLookup
error ERC5805FutureLookup(uint256 timepoint, uint48 clock)
ERC6372InconsistentClock
error ERC6372InconsistentClock()
InvalidAccountNonce
error InvalidAccountNonce(address account, uint256 currentNonce)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
VotesExpiredSignature
error VotesExpiredSignature(uint256 expiry)
creation bytecode
0x608060405234801561001057600080fd5b5061212b806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638376f5db116100de578063a32cf53611610097578063c0c53b8b11610071578063c0c53b8b146103f3578063c3cda52014610406578063dd62ed3e14610419578063f1127ed81461042f57600080fd5b8063a32cf536146103ad578063a7cac846146103c0578063a9059cbb146103e057600080fd5b80638376f5db1461031a57806384b0196e1461032d5780638e539e8c1461034857806391ddadf41461035b57806395d89b411461037a5780639ab24eb01461039a57600080fd5b80633af10cd11161014b5780635c19a95c116101255780635c19a95c146102845780636fcfff451461029757806370a08231146102bf5780637ecebe00146102d257600080fd5b80633af10cd11461023e5780634bf5d7e914610269578063587cde1e1461027157600080fd5b806306fdde0314610193578063095ea7b3146101ca57806318160ddd146101ed57806323b872dd1461020357806331162063146102165780633a46b1a81461022b575b600080fd5b604080518082019091526009815268586169566f74696e6760b81b60208201525b6040516101c19190611be2565b60405180910390f35b6101dd6101d8366004611c11565b61046e565b60405190151581526020016101c1565b6101f56104cc565b6040519081526020016101c1565b6101dd610211366004611c3b565b6105be565b610229610224366004611c3b565b61061c565b005b6101f5610239366004611c11565b61069f565b600054610251906001600160a01b031681565b6040516001600160a01b0390911681526020016101c1565b6101b46106ef565b61025161027f366004611c77565b610767565b610229610292366004611c77565b610792565b6102aa6102a5366004611c77565b6107a1565b60405163ffffffff90911681526020016101c1565b6101f56102cd366004611c77565b6107ac565b6101f56102e0366004611c77565b6001600160a01b031660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052604090205490565b600154610251906001600160a01b031681565b6103356107b7565b6040516101c19796959493929190611c92565b6101f5610356366004611d28565b610863565b61036361089a565b60405165ffffffffffff90911681526020016101c1565b6040805180820190915260048152635658414960e01b60208201526101b4565b6101f56103a8366004611c77565b6108a4565b600254610251906001600160a01b031681565b6101f56103ce366004611c77565b60036020526000908152604090205481565b6101dd6103ee366004611c11565b6108f4565b610229610401366004611d41565b61094e565b610229610414366004611d84565b610afb565b6101f5610427366004611de4565b600092915050565b61044261043d366004611e17565b610bb8565b60408051825165ffffffffffff1681526020928301516001600160d01b031692810192909252016101c1565b60405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420617070726f7665207669727475616c20766f74696e672062616044820152646c616e636560d81b60648201526000906084015b60405180910390fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190611e57565b60008054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190611e57565b6105b99190611e86565b905090565b60405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f74207472616e7366657246726f6d207669727475616c20766f74696044820152696e672062616c616e636560b01b60648201526000906084016104c3565b6002546001600160a01b031633148061063f57506000546001600160a01b031633145b8061065457506001546001600160a01b031633145b61068f5760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c84082eae8d60a31b60448201526064016104c3565b61069a838383610bdd565b505050565b60006000805160206120b68339815191526106dc6106bc84610c5a565b6001600160a01b0386166000908152600184016020526040902090610ca9565b6001600160d01b03169150505b92915050565b60606106f9610d5f565b65ffffffffffff1661070961089a565b65ffffffffffff161461072f576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0390811660009081526000805160206120b683398151915260205260409020541690565b3361079d8183610d6a565b5050565b60006106e982610df4565b60006106e982610e45565b600060608082808083816000805160206120d683398151915280549091501580156107e457506001810154155b6108285760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016104c3565b610830610fb2565b610838611075565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b60006000805160206120b683398151915261088a61088084610c5a565b6002830190610ca9565b6001600160d01b03169392505050565b60006105b9610d5f565b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d01602052604081206000805160206120b68339815191529061088a906110b4565b60405162461bcd60e51b815260206004820152602660248201527f43616e6e6f74207472616e73666572207669727475616c20766f74696e672062604482015265616c616e636560d01b60648201526000906084016104c3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109945750825b905060008267ffffffffffffffff1660011480156109b15750303b155b9050811580156109bf575080155b156109dd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a0757845460ff60401b1916600160401b1785555b610a4b60405180604001604052806009815260200168586169566f74696e6760b81b815250604051806040016040528060018152602001603160f81b8152506110ed565b600080546001600160a01b03199081166001600160a01b038b811691821784556001805484168c8316178155600280549094168b83161784559184526003602052604080852060649081905592548216855280852083905592541683529120558315610af157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b83421115610b1f57604051632341d78760e11b8152600481018590526024016104c3565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610b9990610b919060a001604051602081830303815290604052805190602001206110ff565b85858561112c565b9050610ba5818761115a565b610baf8188610d6a565b50505050505050565b6040805180820190915260008082526020820152610bd683836111cc565b9392505050565b6000805160206120b68339815191526001600160a01b038416610c1557610c1281600201611237610c0d85611243565b61127b565b50505b6001600160a01b038316610c3957610c36816002016112b4610c0d85611243565b50505b610c54610c4585610767565b610c4e85610767565b846112c0565b50505050565b600080610c6561089a565b90508065ffffffffffff168310610ca057604051637669fc0f60e11b81526004810184905265ffffffffffff821660248201526044016104c3565b610bd683611435565b815460009081816005811115610d08576000610cc484611468565b610cce9085611eaf565b60008881526020902090915081015465ffffffffffff9081169087161015610cf857809150610d06565b610d03816001611e86565b92505b505b6000610d16878785856115bc565b90508015610d5157610d3b87610d2d600184611eaf565b600091825260209091200190565b54600160301b90046001600160d01b0316610d54565b60005b979650505050505050565b60006105b943611435565b6000805160206120b68339815191526000610d8484610767565b6001600160a01b0385811660008181526020869052604080822080546001600160a01b031916898616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610c548184610def87610e45565b6112c0565b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260408120546000805160206120b683398151915290610bd69061161e565b600080546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa158015610e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb49190611e57565b610ebe9082611e86565b6001546040516370a0823160e01b81526001600160a01b0385811660048301529293509116906370a0823190602401602060405180830381865afa158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190611e57565b610f389082611e86565b600254604051631e171d2360e01b81526001600160a01b038581166004830152929350911690631e171d2390602401602060405180830381865afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa89190611e57565b6106e99082611e86565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060916000805160206120d683398151915291610ff190611ec2565b80601f016020809104026020016040519081016040528092919081815260200182805461101d90611ec2565b801561106a5780601f1061103f5761010080835404028352916020019161106a565b820191906000526020600020905b81548152906001019060200180831161104d57829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060916000805160206120d683398151915291610ff190611ec2565b805460009080156110e4576110ce83610d2d600184611eaf565b54600160301b90046001600160d01b0316610bd6565b60009392505050565b6110f561164f565b61079d828261169a565b60006106e961110c6116fb565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061113e88888888611705565b92509250925061114e82826117d4565b50909695505050505050565b6001600160a01b03821660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915581811461069a576040516301d4b62360e61b81526001600160a01b0384166004820152602481018290526044016104c3565b604080518082018252600080825260208083018290526001600160a01b03861682527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d019052919091206000805160206120b68339815191529061122f908461188d565b949350505050565b6000610bd68284611efc565b60006001600160d01b03821115611277576040516306dfcc6560e41b815260d06004820152602481018390526044016104c3565b5090565b6000806112a761128961089a565b61129f611295886110b4565b868863ffffffff16565b8791906118fd565b915091505b935093915050565b6000610bd68284611f23565b6000805160206120b68339815191526001600160a01b03848116908416148015906112eb5750600082115b15610c54576001600160a01b03841615611390576001600160a01b03841660009081526001820160205260408120819061132b906112b4610c0d87611243565b6001600160d01b031691506001600160d01b03169150856001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611385929190918252602082015260400190565b60405180910390a250505b6001600160a01b03831615610c54576001600160a01b0383166000908152600182016020526040812081906113cb90611237610c0d87611243565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611425929190918252602082015260400190565b60405180910390a2505050505050565b600065ffffffffffff821115611277576040516306dfcc6560e41b815260306004820152602481018390526044016104c3565b600060018211611476575090565b816001600160801b821061148f5760809190911c9060401b5b600160401b82106114a55760409190911c9060201b5b64010000000082106114bc5760209190911c9060101b5b6201000082106114d15760109190911c9060081b5b61010082106114e55760089190911c9060041b5b601082106114f85760049190911c9060021b5b600482106115045760011b5b600302600190811c9081858161151c5761151c611f43565b048201901c9050600181858161153457611534611f43565b048201901c9050600181858161154c5761154c611f43565b048201901c9050600181858161156457611564611f43565b048201901c9050600181858161157c5761157c611f43565b048201901c9050600181858161159457611594611f43565b048201901c90506115b38185816115ad576115ad611f43565b04821190565b90039392505050565b60005b818310156116165760006115d3848461190b565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561160257809250611610565b61160d816001611e86565b93505b506115bf565b509392505050565b600063ffffffff821115611277576040516306dfcc6560e41b815260206004820152602481018390526044016104c3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661169857604051631afcd79f60e31b815260040160405180910390fd5b565b6116a261164f565b6000805160206120d68339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026116dc8482611fa7565b50600381016116eb8382611fa7565b5060008082556001909101555050565b60006105b9611926565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561174057506000915060039050826117ca565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611794573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166117c0575060009250600191508290506117ca565b9250600091508190505b9450945094915050565b60008260038111156117e8576117e8612067565b036117f1575050565b600182600381111561180557611805612067565b036118235760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561183757611837612067565b036118585760405163fce698f760e01b8152600481018290526024016104c3565b600382600381111561186c5761186c612067565b0361079d576040516335e2f38360e21b8152600481018290526024016104c3565b6040805180820190915260008082526020820152826000018263ffffffff16815481106118bc576118bc61207d565b60009182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6000806112a785858561199a565b600061191a6002848418612093565b610bd690848416611e86565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611951611aee565b611959611b58565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b825460009081908015611a935760006119b887610d2d600185611eaf565b805490915065ffffffffffff80821691600160301b90046001600160d01b03169088168211156119fb57604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff1603611a3457825465ffffffffffff16600160301b6001600160d01b03891602178355611a85565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b94508593506112ac92505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816112ac565b60006000805160206120d683398151915281611b08610fb2565b805190915015611b2057805160209091012092915050565b81548015611b2f579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b60006000805160206120d683398151915281611b72611075565b805190915015611b8a57805160209091012092915050565b60018201548015611b2f579392505050565b6000815180845260005b81811015611bc257602081850181015186830182015201611ba6565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610bd66020830184611b9c565b80356001600160a01b0381168114611c0c57600080fd5b919050565b60008060408385031215611c2457600080fd5b611c2d83611bf5565b946020939093013593505050565b600080600060608486031215611c5057600080fd5b611c5984611bf5565b9250611c6760208501611bf5565b9150604084013590509250925092565b600060208284031215611c8957600080fd5b610bd682611bf5565b60ff60f81b881681526000602060e081840152611cb260e084018a611b9c565b8381036040850152611cc4818a611b9c565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611d1657835183529284019291840191600101611cfa565b50909c9b505050505050505050505050565b600060208284031215611d3a57600080fd5b5035919050565b600080600060608486031215611d5657600080fd5b611d5f84611bf5565b9250611d6d60208501611bf5565b9150611d7b60408501611bf5565b90509250925092565b60008060008060008060c08789031215611d9d57600080fd5b611da687611bf5565b95506020870135945060408701359350606087013560ff81168114611dca57600080fd5b9598949750929560808101359460a0909101359350915050565b60008060408385031215611df757600080fd5b611e0083611bf5565b9150611e0e60208401611bf5565b90509250929050565b60008060408385031215611e2a57600080fd5b611e3383611bf5565b9150602083013563ffffffff81168114611e4c57600080fd5b809150509250929050565b600060208284031215611e6957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106e9576106e9611e70565b634e487b7160e01b600052604160045260246000fd5b818103818111156106e9576106e9611e70565b600181811c90821680611ed657607f821691505b602082108103611ef657634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160d01b03818116838216019080821115611f1c57611f1c611e70565b5092915050565b6001600160d01b03828116828216039080821115611f1c57611f1c611e70565b634e487b7160e01b600052601260045260246000fd5b601f82111561069a57600081815260208120601f850160051c81016020861015611f805750805b601f850160051c820191505b81811015611f9f57828155600101611f8c565b505050505050565b815167ffffffffffffffff811115611fc157611fc1611e99565b611fd581611fcf8454611ec2565b84611f59565b602080601f83116001811461200a5760008415611ff25750858301515b600019600386901b1c1916600185901b178555611f9f565b600085815260208120601f198616915b828110156120395788860151825594840194600190910190840161201a565b50858210156120575787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000826120b057634e487b7160e01b600052601260045260246000fd5b50049056fee8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a2646970667358221220f3fd28396bf1019cd5df63d269983efba19cb4c73ffa34bcc25ef37fdf2a9f8164736f6c63430008140033