0 txs
0 calls
constructor
constructor(uint32 feePrecision)
functions
discountTiers
viewfunction discountTiers(uint256) view returns (uint8)
getDepositFee
viewfunction getDepositFee(address user) view returns (uint32)
getDiscount
viewfunction getDiscount(address user) view returns (uint32)
getFeePrecision
viewfunction getFeePrecision() view returns (uint32)
getManagementFee
viewfunction getManagementFee() view returns (uint32)
getPerformanceFee
viewfunction getPerformanceFee(address user) view returns (uint32)
getWithdrawalFee
viewfunction getWithdrawalFee(address user) view returns (uint32)
owner
viewfunction owner() view returns (address)
signers
viewfunction signers(address signer) view returns (bool isSigner)
stakedAmountInfo
viewfunction stakedAmountInfo(address user) view returns (uint256 stakedAmount, uint256 deadline)
tiersData
viewfunction tiersData(uint8 tier) view returns (uint32 discount, uint256 minAmount)
whitelistedContracts
viewfunction whitelistedContracts(address contractAddress) view returns (bool isWhitelisted)
getUpdateUserFees
nonpayablefunction getUpdateUserFees(address user) returns (uint32 depositFee, uint32 withdrawalFee, uint32 performanceFee)
initialize
nonpayablefunction initialize(address admin, uint32 depositFee, uint32 withdrawalFee, uint32 performanceFee, uint32 managementFee)
renounceOwnership
nonpayablefunction renounceOwnership()
setFees
nonpayablefunction setFees(uint32 depositFee, uint32 withdrawalFee, uint32 performanceFee)
setFeesForUsers
nonpayablefunction setFeesForUsers(address[] users, uint32[] depositFees, uint32[] withdrawalFees, uint32[] performanceFees)
setmanagementFee
nonpayablefunction setmanagementFee(uint32 managementFee)
setSigners
nonpayablefunction setSigners(address[] signers_, bool[] isSigner_)
setStakedAmount
nonpayablefunction setStakedAmount(address user, uint256 stakedAmount, uint256 deadline, bytes signature)
setStakedAmounts
nonpayablefunction setStakedAmounts(address[] users_, uint256[] stakedAmounts_, uint256[] deadlines_)
setTiers
nonpayablefunction setTiers(uint8[] discountTiers_, uint32[] discounts_, uint256[] minAmounts_)
setWhitelistedContracts
nonpayablefunction setWhitelistedContracts(address[] contracts, bool[] isWhitelisted)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
GlobalDepositFeeUpdated
event GlobalDepositFeeUpdated(uint32 newDepositFee)
GlobalPerformanceFeeUpdated
event GlobalPerformanceFeeUpdated(uint32 newPerformanceFee)
GlobalWithdrawalFeeUpdated
event GlobalWithdrawalFeeUpdated(uint32 newWithdrawalFee)
Initialized
event Initialized(uint64 version)
ManagementFeeUpdated
event ManagementFeeUpdated(uint32 newManagementFee)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
ArraysLengthMismatch
error ArraysLengthMismatch()
DifferentArraysLength
error DifferentArraysLength()
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ExpiredSignature
error ExpiredSignature()
InvalidInitialization
error InvalidInitialization()
InvalidSignature
error InvalidSignature()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60a060405234801561000f575f80fd5b50604051611f84380380611f8483398101604081905261002e916100f8565b63ffffffff8116608052610040610046565b50610122565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100965760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100f55780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610108575f80fd5b815163ffffffff8116811461011b575f80fd5b9392505050565b608051611e3c6101485f395f81816101d7015281816112cb01526112f90152611e3c5ff3fe608060405234801561000f575f80fd5b506004361061018f575f3560e01c8063736c0d5b116100dd578063bd59ac1411610088578063f2fde38b11610063578063f2fde38b14610427578063f43393911461043a578063fa84dc2f1461044d575f80fd5b8063bd59ac14146103bc578063de0d3e7714610401578063eddc52b314610414575f80fd5b80639b2eb34d116100b85780639b2eb34d146103615780639c2b1a9514610374578063acb5bef414610382575f80fd5b8063736c0d5b146102f257806389102c21146103145780638da5cb5b14610327575f80fd5b80635722dee01161013d5780635fe8db9c116101185780635fe8db9c1461028c5780636c633f9c1461029f578063715018a6146102ea575f80fd5b80635722dee0146102535780635d00b95a146102665780635ec4fb2a14610279575f80fd5b806336c86fec1161016d57806336c86fec146101fb578063391feebb1461020e5780635066197814610240575f80fd5b806306f2791a1461019357806323da903b146101c05780632537d324146101d5575b5f80fd5b6101a66101a13660046116c4565b610472565b60405163ffffffff90911681526020015b60405180910390f35b6101d36101ce3660046116f0565b61055a565b005b7f00000000000000000000000000000000000000000000000000000000000000006101a6565b6101d3610209366004611809565b61069d565b61023061021c3660046116c4565b60026020525f908152604090205460ff1681565b60405190151581526020016101b7565b6101d361024e3660046118d4565b61071d565b6101a66102613660046116c4565b610890565b6101d3610274366004611990565b610912565b6101d3610287366004611a80565b6109ee565b6101d361029a366004611b39565b610c79565b6102ce6102ad366004611c00565b60076020525f90815260409020805460019091015463ffffffff9091169082565b6040805163ffffffff90931683526020830191909152016101b7565b6101d3610d97565b6102306103003660046116c4565b60056020525f908152604090205460ff1681565b6101d3610322366004611809565b610daa565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016101b7565b6101a661036f3660046116c4565b610e47565b60035463ffffffff166101a6565b6103956103903660046116c4565b610eb9565b6040805163ffffffff948516815292841660208401529216918101919091526060016101b7565b6103ec6103ca3660046116c4565b6001600160a01b03165f90815260046020526040902080546001909101549091565b604080519283526020830191909152016101b7565b6101a661040f3660046116c4565b61101d565b6101d3610422366004611c19565b61107f565b6101d36104353660046116c4565b61117c565b6101d3610448366004611cd3565b6111be565b61046061045b366004611cec565b611214565b60405160ff90911681526020016101b7565b6001600160a01b0381165f9081526004602052604081206001015442111561049b57505f919050565b6001600160a01b0382165f908152600460205260409020546006545b60ff811615610551575f60078160066104d1600186611d17565b60ff16815481106104e4576104e4611d30565b5f91825260208083208183040154601f9092166101000a90910460ff16835282810193909352604091820190208151808301909252805463ffffffff168252600101549181018290529150831061053e5751949350505050565b508061054981611d44565b9150506104b7565b505f9392505050565b610562611245565b5f5463ffffffff8481169116146105ad5760405163ffffffff841681527f0813b3b732185e63a1114cf702c6d5fc11950d364e10dd73aaedc05eb0ec0c729060200160405180910390a15b5f5463ffffffff83811664010000000090920416146106005760405163ffffffff831681527ffef8a6e8ade74d06b7563200a6bb33d5f3a2380504ea6325157f7bf22cd289d79060200160405180910390a15b5f5463ffffffff828116600160401b90920416146106525760405163ffffffff821681527fdf22dc428549aa582460ed3ee89f9e15c3c24428e37822fe00f1f1c04f9ffcb39060200160405180910390a15b5f805463ffffffff94851667ffffffffffffffff199091161764010000000093851693909302929092176bffffffff00000000000000001916600160401b9190931602919091179055565b6106a5611245565b5f5b8251811015610718578181815181106106c2576106c2611d30565b602002602001015160025f8584815181106106df576106df611d30565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016106a7565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156107625750825b90505f8267ffffffffffffffff16600114801561077e5750303b155b90508115801561078c575080155b156107aa5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107d957845468ff00000000000000001916600160401b1785555b6107e28a6112a0565b5f805463ffffffff8b811667ffffffffffffffff19909216919091176401000000008b831602176bffffffff00000000000000001916600160401b8a831602179091556003805463ffffffff1916918816919091179055831561088457845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6001600160a01b0381165f9081526001602052604081205461090c9060ff166108c8575f54640100000000900463ffffffff16610906565b5f80546001600160a01b038516825260016020526040909120546109069163ffffffff640100000000909104811691650100000000009004166112b1565b836112c8565b92915050565b61091a611245565b8151835114158061092d57508051835114155b1561094b576040516307c1c7db60e31b815260040160405180910390fd5b5f5b83518110156109e857604051806040016040528084838151811061097357610973611d30565b6020026020010151815260200183838151811061099257610992611d30565b602002602001015181525060045f8684815181106109b2576109b2611d30565b6020908102919091018101516001600160a01b03168252818101929092526040015f20825181559101516001918201550161094d565b50505050565b6109f6611245565b82518451141580610a0957508151845114155b80610a1657508051845114155b15610a34576040516307e11acb60e51b815260040160405180910390fd5b5f5b8451811015610c72575f60015f878481518110610a5557610a55611d30565b6020908102919091018101516001600160a01b031682528101919091526040015f20805490915060ff1615610ba057610abb858381518110610a9957610a99611d30565b6020908102919091010151825463ffffffff91821691610100909104166112b1565b815463ffffffff919091166101000264ffffffff00199091161781558351610b1590859084908110610aef57610aef611d30565b6020908102919091010151825463ffffffff9182169165010000000000909104166112b1565b815463ffffffff91909116650100000000000268ffffffff0000000000199091161781558251610b7590849084908110610b5157610b51611d30565b6020908102919091010151825463ffffffff91821691600160481b909104166112b1565b815463ffffffff91909116600160481b026cffffffff00000000000000000019909116178155610c69565b848281518110610bb257610bb2611d30565b6020908102919091010151815463ffffffff9091166101000264ffffffff00199091161781558351849083908110610bec57610bec611d30565b6020908102919091010151815463ffffffff909116650100000000000268ffffffff0000000000199091161781558251839083908110610c2e57610c2e611d30565b6020908102919091010151815460ff1963ffffffff909216600160481b02919091166cffffffff0000000000000000ff199091161760011781555b50600101610a36565b5050505050565b81421115610c9a5760405163df4cc36d60e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606086901b16602082015260348101849052605481018390525f90610d21908390610d1b90607401604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b90611331565b6001600160a01b0381165f9081526005602052604090205490915060ff16610d5c57604051638baa579f60e01b815260040160405180910390fd5b505060408051808201825292835260208084019283526001600160a01b039094165f9081526004909452909220905181559051600190910155565b610d9f611245565b610da85f611359565b565b610db2611245565b8051825114610dd4576040516307c1c7db60e31b815260040160405180910390fd5b5f5b825181101561071857818181518110610df157610df1611d30565b602002602001015160055f858481518110610e0e57610e0e611d30565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610dd6565b6001600160a01b0381165f9081526001602052604081205461090c9060ff16610e7e575f54600160401b900463ffffffff16610906565b5f80546001600160a01b038516825260016020526040909120546109069163ffffffff600160401b909104811691600160481b9004166112b1565b6001600160a01b0381165f9081526001602090815260408083203384526002909252822054815483928392909160ff9182169116610f19575f5463ffffffff8082169650640100000000820481169550600160401b909104169250610f8d565b5f548254610f359163ffffffff908116916101009004166112b1565b5f548354919650610f619163ffffffff64010000000090920482169165010000000000909104166112b1565b5f548354919550610f8a9163ffffffff600160401b909204821691600160481b909104166112b1565b92505b8015610ff157815463ffffffff848116600160481b026cffffffff000000000000000000198783166501000000000002166cffffffffffffffff0000000000199289166101000264ffffffffff199094169390931760011791909116919091171782555b610ffb85876112c8565b945061100784876112c8565b935061101383876112c8565b9496939550505050565b6001600160a01b0381165f9081526001602052604081205461090c9060ff1661104d575f5463ffffffff16610906565b5f80546001600160a01b038516825260016020526040909120546109069163ffffffff908116916101009004166112b1565b611087611245565b81518351148015611099575080518251145b6110a1575f80fd5b82516110b49060069060208601906115f4565b505f5b83518160ff1610156109e8576040518060400160405280848360ff16815181106110e3576110e3611d30565b602002602001015163ffffffff168152602001838360ff168151811061110b5761110b611d30565b602002602001015181525060075f868460ff168151811061112e5761112e611d30565b60209081029190910181015160ff168252818101929092526040015f208251815463ffffffff191663ffffffff9091161781559101516001909101558061117481611d5f565b9150506110b7565b611184611245565b6001600160a01b0381166111b257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6111bb81611359565b50565b6111c6611245565b6003805463ffffffff191663ffffffff83169081179091556040519081527f51d1b0f5f524b51b3717749e46a49ed0ae2f2879f2a72d685a7d613a8a0ba5fb9060200160405180910390a150565b60068181548110611223575f80fd5b905f5260205f209060209182820401919006915054906101000a900460ff1681565b336112777f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610da85760405163118cdaa760e01b81523360048201526024016111a9565b6112a86113d6565b6111bb8161141f565b5f8183106112bf57816112c1565b825b9392505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006112f383610472565b61131d907f0000000000000000000000000000000000000000000000000000000000000000611d7d565b6113279085611d99565b6112c19190611dbf565b5f805f8061133f8686611427565b92509250925061134f8282611470565b5090949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610da857604051631afcd79f60e31b815260040160405180910390fd5b6111846113d6565b5f805f835160410361145e576020840151604085015160608601515f1a6114508882858561152c565b955095509550505050611469565b505081515f91506002905b9250925092565b5f82600381111561148357611483611df2565b0361148c575050565b60018260038111156114a0576114a0611df2565b036114be5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156114d2576114d2611df2565b036114f35760405163fce698f760e01b8152600481018290526024016111a9565b600382600381111561150757611507611df2565b03611528576040516335e2f38360e21b8152600481018290526024016111a9565b5050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561156557505f915060039050826115ea565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156115b6573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166115e157505f9250600191508290506115ea565b92505f91508190505b9450945094915050565b828054828255905f5260205f2090601f01602090048101928215611685579160200282015f5b8382111561165757835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f0104928301926001030261161a565b80156116835782816101000a81549060ff02191690556001016020815f01049283019260010302611657565b505b50611691929150611695565b5090565b5b80821115611691575f8155600101611696565b80356001600160a01b03811681146116bf575f80fd5b919050565b5f602082840312156116d4575f80fd5b6112c1826116a9565b803563ffffffff811681146116bf575f80fd5b5f805f60608486031215611702575f80fd5b61170b846116dd565b9250611719602085016116dd565b9150611727604085016116dd565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561176d5761176d611730565b604052919050565b5f67ffffffffffffffff82111561178e5761178e611730565b5060051b60200190565b5f82601f8301126117a7575f80fd5b81356117ba6117b582611775565b611744565b8082825260208201915060208360051b8601019250858311156117db575f80fd5b602085015b838110156117ff576117f1816116a9565b8352602092830192016117e0565b5095945050505050565b5f806040838503121561181a575f80fd5b823567ffffffffffffffff811115611830575f80fd5b61183c85828601611798565b925050602083013567ffffffffffffffff811115611858575f80fd5b8301601f81018513611868575f80fd5b80356118766117b582611775565b8082825260208201915060208360051b850101925087831115611897575f80fd5b6020840193505b828410156118c657833580151581146118b5575f80fd5b82526020938401939091019061189e565b809450505050509250929050565b5f805f805f60a086880312156118e8575f80fd5b6118f1866116a9565b94506118ff602087016116dd565b935061190d604087016116dd565b925061191b606087016116dd565b9150611929608087016116dd565b90509295509295909350565b5f82601f830112611944575f80fd5b81356119526117b582611775565b8082825260208201915060208360051b860101925085831115611973575f80fd5b602085015b838110156117ff578035835260209283019201611978565b5f805f606084860312156119a2575f80fd5b833567ffffffffffffffff8111156119b8575f80fd5b6119c486828701611798565b935050602084013567ffffffffffffffff8111156119e0575f80fd5b6119ec86828701611935565b925050604084013567ffffffffffffffff811115611a08575f80fd5b611a1486828701611935565b9150509250925092565b5f82601f830112611a2d575f80fd5b8135611a3b6117b582611775565b8082825260208201915060208360051b860101925085831115611a5c575f80fd5b602085015b838110156117ff57611a72816116dd565b835260209283019201611a61565b5f805f8060808587031215611a93575f80fd5b843567ffffffffffffffff811115611aa9575f80fd5b611ab587828801611798565b945050602085013567ffffffffffffffff811115611ad1575f80fd5b611add87828801611a1e565b935050604085013567ffffffffffffffff811115611af9575f80fd5b611b0587828801611a1e565b925050606085013567ffffffffffffffff811115611b21575f80fd5b611b2d87828801611a1e565b91505092959194509250565b5f805f8060808587031215611b4c575f80fd5b611b55856116a9565b93506020850135925060408501359150606085013567ffffffffffffffff811115611b7e575f80fd5b8501601f81018713611b8e575f80fd5b803567ffffffffffffffff811115611ba857611ba8611730565b611bbb601f8201601f1916602001611744565b818152886020838501011115611bcf575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b803560ff811681146116bf575f80fd5b5f60208284031215611c10575f80fd5b6112c182611bf0565b5f805f60608486031215611c2b575f80fd5b833567ffffffffffffffff811115611c41575f80fd5b8401601f81018613611c51575f80fd5b8035611c5f6117b582611775565b8082825260208201915060208360051b850101925088831115611c80575f80fd5b6020840193505b82841015611ca957611c9884611bf0565b825260209384019390910190611c87565b9550505050602084013567ffffffffffffffff811115611cc7575f80fd5b6119ec86828701611a1e565b5f60208284031215611ce3575f80fd5b6112c1826116dd565b5f60208284031215611cfc575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b60ff828116828216039081111561090c5761090c611d03565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821680611d5657611d56611d03565b5f190192915050565b5f60ff821660ff8103611d7457611d74611d03565b60010192915050565b63ffffffff828116828216039081111561090c5761090c611d03565b63ffffffff8181168382160290811690818114611db857611db8611d03565b5092915050565b5f63ffffffff831680611de057634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160491505092915050565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220a18eeba52fba4622fffccdbfb657b0ca19e17d267ef5a2b17ceff1c6ed82f12564736f6c634300081a00330000000000000000000000000000000000000000000000000000000000002710