21 txs
3.5k calls
constructor
constructor(address initialAuthority_, address plasmaVault_)
functions
authority
viewfunction authority() view returns (address)
balanceOf
viewfunction balanceOf() view returns (uint256)
getVestingData
viewfunction getVestingData() view returns (tuple)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
isRewardFuseSupported
viewfunction isRewardFuseSupported(address fuse_) view returns (bool)
PLASMA_VAULT
viewfunction PLASMA_VAULT() view returns (address)
UNDERLYING_TOKEN
viewfunction UNDERLYING_TOKEN() view returns (address)
addRewardFuses
nonpayablefunction addRewardFuses(address[] fuses_)
claimRewards
nonpayablefunction claimRewards(tuple[] calls_)
removeRewardFuses
nonpayablefunction removeRewardFuses(address[] fuses_)
setAuthority
nonpayablefunction setAuthority(address newAuthority)
setupVestingTime
nonpayablefunction setupVestingTime(uint256 vestingTime_)
transfer
nonpayablefunction transfer(address asset_, address to_, uint256 amount_)
transferVestedTokensToVault
nonpayablefunction transferVestedTokensToVault()
updateBalance
nonpayablefunction updateBalance()
events
AmountWithdrawn
event AmountWithdrawn(uint256 amount)
AuthorityUpdated
event AuthorityUpdated(address authority)
FuseAdded
event FuseAdded(address fuse)
FuseRemoved
event FuseRemoved(address fuse)
TransferredTokensUpdated
event TransferredTokensUpdated(uint128 transferredTokens)
VestingDataUpdated
event VestingDataUpdated(uint128 transferredTokens, uint128 balanceOnLastUpdate, uint32 vestingTime, uint32 lastUpdateBalance)
VestingTimeUpdated
event VestingTimeUpdated(uint256 vestingTime)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
FuseAlreadyExists
error FuseAlreadyExists()
FuseDoesNotExist
error FuseDoesNotExist()
FuseUnsupported
error FuseUnsupported(address fuse)
MathOverflowedMulDiv
error MathOverflowedMulDiv()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnableToTransferUnderlyingToken
error UnableToTransferUnderlyingToken()
creation bytecode
0x60c060405234801561000f575f80fd5b506040516122a13803806122a183398101604081905261002e9161011f565b81610038816100b1565b50806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100999190610150565b6001600160a01b039081166080521660a05250610170565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80516001600160a01b038116811461011a575f80fd5b919050565b5f8060408385031215610130575f80fd5b61013983610104565b915061014760208401610104565b90509250929050565b5f60208284031215610160575f80fd5b61016982610104565b9392505050565b60805160a0516120df6101c25f395f818161036b015281816103ea0152818161082b0152610c2d01525f8181610216015281816103c8015281816108090152818161092b0152610a2c01526120df5ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80637a9e5e4b11610093578063beabacc811610063578063beabacc814610323578063bf7e214f14610336578063e3efd95f14610353578063ead66a0714610366575f80fd5b80637a9e5e4b146102ac5780638fb36037146102bf578063a9559dd7146102f8578063b4c2cb2e14610300575f80fd5b806342378c2c116100ce57806342378c2c1461025d5780634597a2261461027057806370e803e314610283578063722713f714610296575f80fd5b8063041752e3146100f4578063068483fa1461020757806329db1be614610211575b5f80fd5b610197604080516080810182525f8082526020820181905291810182905260608101919091527f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc0060408051608081018252825463ffffffff808216835264010000000082041660208301526fffffffffffffffffffffffffffffffff68010000000000000000909104811692820192909252600190920154166060820152919050565b6040516101fe91905f60808201905063ffffffff835116825263ffffffff60208401511660208301526fffffffffffffffffffffffffffffffff60408401511660408301526fffffffffffffffffffffffffffffffff606084015116606083015292915050565b60405180910390f35b61020f61038d565b005b6102387f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fe565b61020f61026b366004611b02565b61044f565b61020f61027e366004611b61565b610464565b61020f610291366004611b61565b6104b5565b61029e610500565b6040519081526020016101fe565b61020f6102ba366004611bc8565b6106a5565b6102c7610789565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101fe565b61020f6107d5565b61031361030e366004611bc8565b6109d4565b60405190151581526020016101fe565b61020f610331366004611be1565b610a21565b5f5473ffffffffffffffffffffffffffffffffffffffff16610238565b61020f610361366004611b61565b610ad5565b6102387f000000000000000000000000000000000000000000000000000000000000000081565b610399335b5f36610c96565b5f6103a2610500565b9050805f036103ae5750565b61040f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610e2d565b61041881610eba565b6040518181527f3e92aa4db3477ddd7c90d0ded7b985612c042e99cdeed9408343c650bdda73b9906020015b60405180910390a150565b61045833610392565b61046181610f94565b50565b61046d33610392565b805f5b818110156104af576104a784848381811061048d5761048d611c1b565b90506020020160208101906104a29190611bc8565b611021565b600101610470565b50505050565b6104be33610392565b805f5b818110156104af576104f88484838181106104de576104de611c1b565b90506020020160208101906104f39190611bc8565b6111a7565b6001016104c1565b604080516080810182527f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc005463ffffffff8082168352640100000000820416602083018190526fffffffffffffffffffffffffffffffff680100000000000000009092048216938301939093527f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc01541660608201525f9115806105a85750805163ffffffff16155b156105b4575f91505090565b6020810151670de0b6b3a76400009063ffffffff164210610609578151602083015163ffffffff918216916105ea911642611c75565b6105fc90670de0b6b3a7640000611c88565b6106069190611ccc565b90505b805f03610618575f9250505090565b670de0b6b3a76400008110610654578160400151826060015161063b9190611d04565b6fffffffffffffffffffffffffffffffff169250505090565b81604001516fffffffffffffffffffffffffffffffff1661069483606001516fffffffffffffffffffffffffffffffff1683670de0b6b3a7640000611429565b61069e9190611c75565b9250505090565b5f54339073ffffffffffffffffffffffffffffffffffffffff168114610714576040517f068ca9d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024015b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163b5f0361077c576040517fc2f31e5e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260240161070b565b61078582611521565b5050565b5f805474010000000000000000000000000000000000000000900460ff166107b057505f90565b507f8fb360370000000000000000000000000000000000000000000000000000000090565b6107de33610392565b5f6107e7610500565b905080156108505761085073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610e2d565b604080516080810182527f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc005463ffffffff808216835264010000000082041660208301526801000000000000000090046fffffffffffffffffffffffffffffffff908116928201929092527f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc015490911660608201526108ee42611593565b63ffffffff1660208201526040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526109ae907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610985573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a99190611d2c565b6115e0565b6fffffffffffffffffffffffffffffffff1660608201525f604082015261078581611635565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602052604081205415155b92915050565b610a2a33610392565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aaf576040517f4a2873d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ad073ffffffffffffffffffffffffffffffffffffffff84168383610e2d565b505050565b610ade33610392565b805f5b81811015610bef57610b66848483818110610afe57610afe611c1b565b9050602002810190610b109190611d43565b610b1e906020810190611bc8565b73ffffffffffffffffffffffffffffffffffffffff165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b54006020526040902054151590565b610be757838382818110610b7c57610b7c611c1b565b9050602002810190610b8e9190611d43565b610b9c906020810190611bc8565b6040517fd9ffc5d100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161070b565b600101610ae1565b506040517fe3efd95f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e3efd95f90610c649086908690600401611dc6565b5f604051808303815f87803b158015610c7b575f80fd5b505af1158015610c8d573d5f803e3d5ffd5b50505050505050565b5f80610cd6610cb95f5473ffffffffffffffffffffffffffffffffffffffff1690565b8630610cc860045f898b611f01565b610cd191611f28565b61179a565b9150915081610e265763ffffffff811615610ddc575f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff811674010000000000000000000000000000000000000000179091556040517f94c7d7ee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906394c7d7ee90610d8290889088908890600401611f8e565b5f604051808303815f87803b158015610d99575f80fd5b505af1158015610dab573d5f803e3d5ffd5b50505f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550610e269050565b6040517f068ca9d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015260240161070b565b5050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ad0908490611913565b7f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc005f610ee5836115e0565b8254610f0f91906801000000000000000090046fffffffffffffffffffffffffffffffff16611fc6565b82547fffffffffffffffff00000000000000000000000000000000ffffffffffffffff16680100000000000000006fffffffffffffffffffffffffffffffff83169081029190911784556040519081529091507fe06356961fcc6b17192f867e50879bc1bbaa34f58809d2b2ab5476b53877832e9060200160405180910390a1505050565b610f9d81611593565b7f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc0080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790556040518181527f2641e88f81cf31291624c624eaeb689e2c1dd743fa5beb08d4b6462e1b72af3c90602001610444565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260409091205480156110a0576040517fe5b59f7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab00546110ce906001611fee565b73ffffffffffffffffffffffffffffffffffffffff85165f818152602086815260408083208590557fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab00805460018101825593527f23477b0f5b8efb150cb70bc4c9355a652f99157c4bc9fa45fe343f5c90fe96a790920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905590519182529192507fa6900b674d94d1ecd696c66ec6762dcb661729307e0f90a5a4bc0513b1390d7391015b60405180910390a150505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260408220549091819003611228576040517f8f37b07400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab0060017fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab00546112789190611c75565b8154811061128857611288611c1b565b5f91825260208083209091015473ffffffffffffffffffffffffffffffffffffffff90811680845291869052604080842086905590871683528220919091559050806112f17fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab0090565b6112fc600185611c75565b8154811061130c5761130c611c1b565b5f91825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790557fad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab0080548061138957611389612001565b5f8281526020908190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908301810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff861681527f78464d629b261dcdc053f071c694250a86fc2a7ad6315364a81c7cd7cd98482e9101611199565b5f838302817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870982811083820303915050805f0361147c5783828161147257611472611c9f565b049250505061151a565b8084116114b5576040517f227bc15300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001610444565b5f63ffffffff8211156115dc576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152602060048201526024810183905260440161070b565b5090565b5f6fffffffffffffffffffffffffffffffff8211156115dc576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152608060048201526024810183905260440161070b565b80517f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc00805460208085015160408087015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909516949094176401000000009287168302177fffffffffffffffff00000000000000000000000000000000ffffffffffffffff8116680100000000000000006fffffffffffffffffffffffffffffffff96871681029182178089556060808c01517f6ab1bcc6104660f940addebf2a0f1cdfdd8fb6e9a4305fcd73bc32a2bcbabc0180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016918b1691821790558651938304909916835296820197909752918816908816178183015291909304909416908401525190917f0431e9724227d3b9c513722f62640892973b125a46b468409293217dd5751711916080918190039190910190a15050565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301527fffffffff00000000000000000000000000000000000000000000000000000000831660648301525f91829182918291891690608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb70096130000000000000000000000000000000000000000000000000000000017905251611879919061202e565b5f60405180830381855afa9150503d805f81146118b1576040519150601f19603f3d011682016040523d82523d5f602084013e6118b6565b606091505b509150915081156119085760408151106118e857808060200190518101906118de9190612053565b9094509250611908565b602081511061190857808060200190518101906119059190612090565b93505b505094509492505050565b5f61193473ffffffffffffffffffffffffffffffffffffffff8416836119a7565b905080515f141580156119585750808060200190518101906119569190612090565b155b15610ad0576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161070b565b606061151a83835f845f808573ffffffffffffffffffffffffffffffffffffffff1684866040516119d8919061202e565b5f6040518083038185875af1925050503d805f8114611a12576040519150601f19603f3d011682016040523d82523d5f602084013e611a17565b606091505b5091509150611a27868383611a31565b9695505050505050565b606082611a4657611a4182611ac0565b61151a565b8151158015611a6a575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611ab9576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161070b565b508061151a565b805115611ad05780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215611b12575f80fd5b5035919050565b5f8083601f840112611b29575f80fd5b50813567ffffffffffffffff811115611b40575f80fd5b6020830191508360208260051b8501011115611b5a575f80fd5b9250929050565b5f8060208385031215611b72575f80fd5b823567ffffffffffffffff811115611b88575f80fd5b611b9485828601611b19565b90969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611bc3575f80fd5b919050565b5f60208284031215611bd8575f80fd5b61151a82611ba0565b5f805f60608486031215611bf3575f80fd5b611bfc84611ba0565b9250611c0a60208501611ba0565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610a1b57610a1b611c48565b8082028115828204841417610a1b57610a1b611c48565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611cff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b6fffffffffffffffffffffffffffffffff8281168282160390811115610a1b57610a1b611c48565b5f60208284031215611d3c575f80fd5b5051919050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611d75575f80fd5b9190910192915050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602080825281018290525f6040600584901b8301810190830185837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc136839003015b87821015611ef4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528235818112611e44575f80fd5b890173ffffffffffffffffffffffffffffffffffffffff611e6482611ba0565b16865260208101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112611e9b575f80fd5b0160208101903567ffffffffffffffff811115611eb6575f80fd5b803603821315611ec4575f80fd5b60406020880152611ed9604088018284611d7f565b96505050602083019250602084019350600182019150611e08565b5092979650505050505050565b5f8085851115611f0f575f80fd5b83861115611f1b575f80fd5b5050820193919092039150565b80357fffffffff000000000000000000000000000000000000000000000000000000008116906004841015611f87577fffffffff00000000000000000000000000000000000000000000000000000000808560040360031b1b82161691505b5092915050565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201525f611fbd604083018486611d7f565b95945050505050565b6fffffffffffffffffffffffffffffffff8181168382160190811115610a1b57610a1b611c48565b80820180821115610a1b57610a1b611c48565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82518060208501845e5f920191825250919050565b80518015158114611bc3575f80fd5b5f8060408385031215612064575f80fd5b61206d83612044565b9150602083015163ffffffff81168114612085575f80fd5b809150509250929050565b5f602082840312156120a0575f80fd5b61151a8261204456fea2646970667358221220fd1fa0dc10e5765307696ae985b806e3003ff2c063d2fc257e474765d4e20e4264736f6c634300081a0033000000000000000000000000956d09551251493f165eca171bd377c247ba8f4b00000000000000000000000020e934c725b6703f0ac696f1689008057db9ac44