1k txs
1.1k calls
constructor
constructor(address multisig, address manager, address asto, address think)
functions
ASTO
viewfunction ASTO() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
RATE
viewfunction RATE() view returns (uint256)
SCALE
viewfunction SCALE() view returns (uint256)
SCALED_RATE
viewfunction SCALED_RATE() view returns (uint256)
SCALED_TOTAL_ASTO
viewfunction SCALED_TOTAL_ASTO() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
THINK
viewfunction THINK() view returns (address)
TOTAL_ASTO
viewfunction TOTAL_ASTO() view returns (uint256)
TOTAL_THINK
viewfunction TOTAL_THINK() view returns (uint256)
burnASTO
nonpayablefunction burnASTO(uint256 amount)
depositTHINK
nonpayablefunction depositTHINK(uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
recoverERC20
nonpayablefunction recoverERC20(address token, uint256 amount)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
swap
nonpayablefunction swap(uint256 astoAmount) returns (uint256 thinkAmount)
unpause
nonpayablefunction unpause()
withdrawTHINK
nonpayablefunction withdrawTHINK(uint256 amount)
events
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Swapped
event Swapped(address indexed user, uint256 astoAmount, uint256 thinkAmount)
ThinkDeposited
event ThinkDeposited(address indexed manager, uint256 amount)
ThinkWithdrawn
event ThinkWithdrawn(address indexed manager, uint256 amount)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InsufficientAllowance
error InsufficientAllowance(string token, uint256 allowance, uint256 amount)
InsufficientBalance
error InsufficientBalance(string token, uint256 balance, uint256 amount)
InvalidAddress
error InvalidAddress(string wrongAddress)
InvalidAmount
error InvalidAmount(string wrongAmount)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
ZeroAmount
error ZeroAmount()
creation bytecode
0x60c060405234801562000010575f80fd5b50604051620015223803806200152283398101604081905262000033916200026c565b600180556002805460ff191690556001600160a01b0384166200008957604051630b0f5aa160e11b81526020600482015260086024820152674d756c746973696760c01b60448201526064015b60405180910390fd5b6001600160a01b038316620000cc57604051630b0f5aa160e11b815260206004820152600760248201526626b0b730b3b2b960c91b604482015260640162000080565b6001600160a01b0382166200010e57604051630b0f5aa160e11b815260040162000080906020808252600490820152634153544f60e01b604082015260600190565b6001600160a01b0381166200014f57604051630b0f5aa160e11b81526020600482015260056024820152645448494e4b60d81b604482015260640162000080565b6200015b5f85620001a4565b50620001887f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0884620001a4565b506001600160a01b039182166080521660a05250620002c69050565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1662000247575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001fe3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200024a565b505f5b92915050565b80516001600160a01b038116811462000267575f80fd5b919050565b5f805f806080858703121562000280575f80fd5b6200028b8562000250565b93506200029b6020860162000250565b9250620002ab6040860162000250565b9150620002bb6060860162000250565b905092959194509250565b60805160a0516111ed620003355f395f8181610250015281816103b6015281816104fe015281816105fd015281816109090152610b1b01525f81816102f501528181610683015281816107e30152818161087e01528181610a8a01528181610bf40152610cc901526111ed5ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063664e9704116100bf578063a217fddf11610079578063a217fddf146102b0578063b42f75f6146102b7578063cfe5a109146102ca578063d547741f146102dd578063d7d15482146102f0578063eced552614610317575f80fd5b8063664e9704146102285780638456cb59146102305780638980f11f146102385780638d904e881461024b57806391d148541461028a57806394b918de1461029d575f80fd5b80632f2ff15d116101105780632f2ff15d146101c957806336568abe146101dc5780633b772fcd146101ef5780633f4ba83a14610202578063521efc0b1461020a5780635c975abb1461021d575f80fd5b806301ffc9a71461014c57806314933c5c1461017457806314a342851461018a578063248a9ca31461019f5780632bbd6274146101c1575b5f80fd5b61015f61015a366004611059565b610326565b60405190151581526020015b60405180910390f35b61017c61035c565b60405190815260200161016b565b61019d610198366004611080565b61037d565b005b61017c6101ad366004611080565b5f9081526020819052604090206001015490565b61017c610463565b61019d6101d73660046110ad565b610476565b61019d6101ea3660046110ad565b6104a0565b61019d6101fd366004611080565b6104d8565b61019d6105a3565b61017c6b033b2e3c9fd0803ce800000081565b60025460ff1661015f565b61017c604581565b61019d6105c5565b61019d6102463660046110d7565b6105e4565b6102727f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b61015f6102983660046110ad565b610770565b61017c6102ab366004611080565b610798565b61017c5f81565b61019d6102c5366004611080565b610bdd565b61017c6b07b3ffa2f5d464eb5000000081565b61019d6102eb3660046110ad565b610d2c565b6102727f000000000000000000000000000000000000000000000000000000000000000081565b61017c670de0b6b3a764000081565b5f6001600160e01b03198216637965db0b60e01b148061035657506301ffc9a760e01b6001600160e01b03198316145b92915050565b61037a670de0b6b3a76400006b07b3ffa2f5d464eb500000006110ff565b81565b5f8051602061119883398151915261039481610d50565b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015610404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104289190611122565b5060405182815233907f984a957dd14be3c9e96ff1541871382c17bec6f1a999e1319bae1c6905574813906020015b60405180910390a25050565b61037a670de0b6b3a764000060456110ff565b5f8281526020819052604090206001015461049081610d50565b61049a8383610d5a565b50505050565b6001600160a01b03811633146104c95760405163334bd91960e11b815260040160405180910390fd5b6104d38282610de9565b505050565b5f6104e281610d50565b60405163a9059cbb60e01b8152336004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561054c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105709190611122565b5060405182815233907fd6d2ff9968cdd79669dec6a118e7b4c5a9a44e44d130a04771c6d0e217de196790602001610457565b5f805160206111988339815191526105ba81610d50565b6105c2610e52565b50565b5f805160206111988339815191526105dc81610d50565b6105c2610ea4565b5f805160206111988339815191526105fb81610d50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036106815760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f766572205448494e4b20746f6b656e73000000000060448201526064015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036107025760405162461bcd60e51b815260206004820152601f60248201527f4153544f20746f6b656e7320617265206e6f74207265636f76657261626c65006044820152606401610678565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af115801561074c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049a9190611122565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f6107a1610ee1565b6107a9610f0b565b815f036107c957604051631f2a200560e01b815260040160405180910390fd5b6040516370a0823160e01b81523360048201819052905f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610830573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108549190611141565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063dd62ed3e90604401602060405180830381865afa1580156108c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e79190611141565b6040516370a0823160e01b81523060048201529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190611141565b905082861115610999578286604051636664c8cf60e11b8152600401610678929190611158565b818611156109bd57818660405162e7482160e61b8152600401610678929190611158565b5f6109dd6109d4670de0b6b3a764000060456110ff565b88906064610f31565b9050610a156b033b2e3c9fd0803ce8000000610a0d670de0b6b3a76400006b07b3ffa2f5d464eb500000006110ff565b839190610f31565b955085821015610a5e57604051636664c8cf60e11b81526060600482015260056064820152645448494e4b60d81b6084820152602481018390526044810187905260a401610678565b6040516323b872dd60e01b81526001600160a01b038681166004830152306024830152604482018990527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303815f875af1158015610ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af49190611122565b5060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018890527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015610b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b859190611122565b5060408051888152602081018890526001600160a01b038716917f3a9a9f34f5831e9c8ecb66ab3aa308b2ff31eaca434615f6c9cadc656a9af71c910160405180910390a25050505050610bd860018055565b919050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610c41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c659190611141565b90505f82118015610c765750808211155b610cb35760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610678565b604051630852cd8d60e31b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c68906024015f604051808303815f87803b158015610d12575f80fd5b505af1158015610d24573d5f803e3d5ffd5b505050505050565b5f82815260208190526040902060010154610d4681610d50565b61049a8383610de9565b6105c28133610fe8565b5f610d658383610770565b610de2575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610d9a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610356565b505f610356565b5f610df48383610770565b15610de2575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610356565b610e5a611025565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610eac610f0b565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e873390565b600260015403610f0457604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60025460ff1615610f2f5760405163d93c066560e01b815260040160405180910390fd5b565b5f838302815f1985870982811083820303915050805f03610f6557838281610f5b57610f5b611183565b0492505050610fe1565b808411610f7c57610f7c6003851502601118611048565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b610ff28282610770565b6110215760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610678565b5050565b60025460ff16610f2f57604051638dfc202b60e01b815260040160405180910390fd5b634e487b715f52806020526024601cfd5b5f60208284031215611069575f80fd5b81356001600160e01b031981168114610fe1575f80fd5b5f60208284031215611090575f80fd5b5035919050565b80356001600160a01b0381168114610bd8575f80fd5b5f80604083850312156110be575f80fd5b823591506110ce60208401611097565b90509250929050565b5f80604083850312156110e8575f80fd5b6110f183611097565b946020939093013593505050565b808202811582820484141761035657634e487b7160e01b5f52601160045260245ffd5b5f60208284031215611132575f80fd5b81518015158114610fe1575f80fd5b5f60208284031215611151575f80fd5b5051919050565b6060808252600490820152634153544f60e01b60808201526020810192909252604082015260a00190565b634e487b7160e01b5f52601260045260245ffdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a26469706673582212203fd17686d45ae664c00b018f8b0449174ba90405e4ac9aa38c73aaeaaaf3a7c364736f6c6343000814003300000000000000000000000007338f0d76f9d74c42c360ff7f852fce1c5369830000000000000000000000006972480b73fd3a5278c039cf072b499c4ca22e33000000000000000000000000823556202e86763853b40e9cde725f412e294689000000000000000000000000f9ff95468cb9a0cd57b8542bbc4c148e290ff465