0 txs
1.1k calls
constructor
constructor()
functions
BLACKLISTER_SHARE
viewfunction BLACKLISTER_SHARE() view returns (uint256)
collateralBp
viewfunction collateralBp() view returns (uint256)
fpd
viewfunction fpd() view returns (address)
getUserTotalCollateral
viewfunction getUserTotalCollateral(address _user) view returns (uint256)
isBlacklisted
viewfunction isBlacklisted(address) view returns (bool)
isUserBlacklistable
viewfunction isUserBlacklistable(address _user) view returns (bool)
isUserBlacklisted
viewfunction isUserBlacklisted(address _user) view returns (bool)
MAXIMUM_BASIS_POINTS
viewfunction MAXIMUM_BASIS_POINTS() view returns (uint256)
nonBlacklistable
viewfunction nonBlacklistable(address) view returns (bool)
nonBlacklistableTargetBytecode
viewfunction nonBlacklistableTargetBytecode() view returns (bytes)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
PROTOCOL_SHARE
viewfunction PROTOCOL_SHARE() view returns (uint256)
protocolAddress
viewfunction protocolAddress() view returns (address)
rewardToken
viewfunction rewardToken() view returns (address)
veION
viewfunction veION() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address _fpd, address _protocolAddress, address _rewardToken, uint256 _collateralBp, bytes _nonBlacklistableTargetBytecode)
renounceOwnership
nonpayablefunction renounceOwnership()
reportUser
nonpayablefunction reportUser(address _user)
setCollateralBp
nonpayablefunction setCollateralBp(uint256 _collateralBp)
setNonBlacklistableAddress
nonpayablefunction setNonBlacklistableAddress(address _user, bool _isNonBlacklistable)
setNonBlacklistableTargetBytecode
nonpayablefunction setNonBlacklistableTargetBytecode(bytes _newBytecode)
setProtocolAddress
nonpayablefunction setProtocolAddress(address _newProtocolAddress)
setVeIon
nonpayablefunction setVeIon(address _veIon)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
whitelistUser
nonpayablefunction whitelistUser(address _user)
events
CollateralBpSet
event CollateralBpSet(uint256 collateralBp)
Initialized
event Initialized(address indexed protocolAddress, address indexed rewardToken, uint256 collateralBp, bytes nonBlacklistableTargetBytecode)
Initialized
event Initialized(uint8 version)
NonBlacklistableAddressSet
event NonBlacklistableAddressSet(address indexed user, bool isNonBlacklistable)
NonBlacklistableTargetBytecodeSet
event NonBlacklistableTargetBytecodeSet(bytes newBytecode)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
VeIonSet
event VeIonSet(address indexed veIon)
errors
CollateralBasisPointsExceedMaximum
error CollateralBasisPointsExceedMaximum()
InvalidPoolDirectoryAaddress
error InvalidPoolDirectoryAaddress()
InvalidProtocolAddress
error InvalidProtocolAddress()
InvalidRewardTokenAddress
error InvalidRewardTokenAddress()
InvalidVeIONAddress
error InvalidVeIONAddress()
MaximumLimitExceeded
error MaximumLimitExceeded()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61250e80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063c5b753e811610097578063f2fde38b11610071578063f2fde38b14610377578063f7c618c11461038a578063fe575a871461039d578063fea8e9bd146103c057600080fd5b8063c5b753e814610340578063de858c6314610353578063e30c39781461036657600080fd5b80637b3ba962116100d35780637b3ba9621461030a5780638da5cb5b146103135780638fc42e2c146103245780639a81b1391461033757600080fd5b8063715018a6146102e7578063721e75b6146102ef57806379ba50971461030257600080fd5b80633a5cdb8d11610166578063503b8e8111610140578063503b8e811461028d57806351adc761146102b957806358e47004146102c15780636e943a98146102d457600080fd5b80633a5cdb8d14610244578063496eafff146102675780634a4c560d1461027a57600080fd5b80630676c1b7146101ae5780630d8f21be146101de57806312d6b6b2146101ff578063149196b614610207578063277c708a1461021c57806334db8f6314610231575b600080fd5b6097546101c1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f16101ec366004611c26565b6103e3565b6040519081526020016101d5565b6101f1605081565b61021a610215366004611c26565b6103f4565b005b61022461046d565b6040516101d59190611c9a565b61021a61023f366004611c26565b6104fb565b610257610252366004611c26565b6106df565b60405190151581526020016101d5565b61021a610275366004611d9b565b610785565b61021a610288366004611c26565b6107d4565b61025761029b366004611c26565b6001600160a01b03166000908152609d602052604090205460ff1690565b6101f1601481565b61021a6102cf366004611c26565b610c3a565b61021a6102e2366004611dd8565b610cac565b61021a610ef5565b61021a6102fd366004611e57565b610f09565b61021a610f70565b6101f160985481565b6033546001600160a01b03166101c1565b61021a610332366004611e95565b610fea565b6101f161271081565b609b546101c1906001600160a01b031681565b6099546101c1906001600160a01b031681565b6065546001600160a01b03166101c1565b61021a610385366004611c26565b611049565b609a546101c1906001600160a01b031681565b6102576103ab366004611c26565b609d6020526000908152604090205460ff1681565b6102576103ce366004611c26565b609e6020526000908152604090205460ff1681565b60006103ee826110ba565b92915050565b6103fc6113ca565b6001600160a01b03811661042357604051639c35822760e01b815260040160405180910390fd5b609b80546001600160a01b0319166001600160a01b0383169081179091556040517fcf5c717dedea62dd2018f8ebd3217481fcfb8caa2ad15f03b0df34b3ed5bebcb90600090a250565b609c805461047a90611eae565b80601f01602080910402602001604051908101604052809291908181526020018280546104a690611eae565b80156104f35780601f106104c8576101008083540402835291602001916104f3565b820191906000526020600020905b8154815290600101906020018083116104d657829003601f168201915b505050505081565b806000816001600160a01b0316803b806020016040519081016040528181526000908060200190933c9050609c6040516105359190611ee8565b60405180910390208180519060200120036105975760405162461bcd60e51b815260206004820152601a60248201527f4e6f6e2d626c61636b6c69737461626c652062797465636f646500000000000060448201526064015b60405180910390fd5b6001600160a01b0383166000908152609e602052604090205460ff16156105f95760405162461bcd60e51b81526020600482015260166024820152752737b716b13630b1b5b634b9ba30b13632903ab9b2b960511b604482015260640161058e565b6001600160a01b0383166000908152609d602052604090205460ff16156106585760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e48189b1858dadb1a5cdd1959606a1b604482015260640161058e565b61066183611424565b156106ae5760405162461bcd60e51b815260206004820152601a60248201527f4c502062616c616e63652061626f7665207468726573686f6c64000000000000604482015260640161058e565b6001600160a01b0383166000908152609d60205260409020805460ff191660011790556106da836114e8565b505050565b6001600160a01b0381166000908152609e602052604081205460ff16806107475750609c6040516107109190611ee8565b6040518091039020826001600160a01b0316803b806020016040519081016040528181526000908060200190933c80519060200120145b1561075457506000919050565b61075d82611424565b1580156103ee5750506001600160a01b03166000908152609d602052604090205460ff161590565b61078d6113ca565b609c6107998282611fa6565b507f219eb2915fa7b41d5f473e62733806e5b7ec7471b6f4ae40ffd942ec445d6dba816040516107c99190611c9a565b60405180910390a150565b6001600160a01b0381166000908152609d602052604090205460ff166108325760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481dda1a5d195b1a5cdd1959606a1b604482015260640161058e565b61083b81611424565b6108875760405162461bcd60e51b815260206004820152601a60248201527f4c502062616c616e63652062656c6f77207468726573686f6c64000000000000604482015260640161058e565b6001600160a01b038082166000908152609d6020526040808220805460ff1916905560995481516323b020d560e21b8152915192931691638ec083549160048082019286929091908290030181865afa1580156108e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091091908101906121ce565b8051909250905060005b81811015610c345760008382815181106109365761093661228a565b60200260200101516040015190506000816001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610984573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ac91908101906122a0565b805190915060005b81811015610c24576000846001600160a01b0316634a76e7276040518163ffffffff1660e01b8152600401600060405180830381865afa1580156109fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a24919081019061233a565b805190915060005b81811015610c19576000838281518110610a4857610a4861228a565b60200260200101519050609a60009054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad391906123c9565b6001600160a01b031603610c1057806001600160a01b0316632fa8673b888781518110610b0257610b0261228a565b60200260200101518e6040518363ffffffff1660e01b8152600401610b3d9291906001600160a01b0392831681529116602082015260400190565b600060405180830381600087803b158015610b5757600080fd5b505af1158015610b6b573d6000803e3d6000fd5b50505050806001600160a01b031663b9be44ac888781518110610b9057610b9061228a565b60200260200101518e6040518363ffffffff1660e01b8152600401610bcb9291906001600160a01b0392831681529116602082015260400190565b6020604051808303816000875af1158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0e91906123e6565b505b50600101610a2c565b5050506001016109b4565b50506001909201915061091a9050565b50505050565b610c426113ca565b6001600160a01b038116610c8a5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161058e565b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1615808015610ccc5750600054600160ff909116105b80610ce65750303b158015610ce6575060005460ff166001145b610d495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161058e565b6000805460ff191660011790558015610d6c576000805461ff0019166101001790555b6001600160a01b038616610d93576040516305d16f2960e51b815260040160405180910390fd5b6001600160a01b038516610dba57604051630ff6dc2560e11b815260040160405180910390fd5b6001600160a01b038416610de157604051636a27e5f160e01b815260040160405180910390fd5b6127108310610e035760405163f23e174160e01b815260040160405180910390fd5b610e0b611acf565b609780546001600160a01b038088166001600160a01b03199283161790925560998054898416908316179055609a8054928716929091169190911790556098839055609c610e598382611fa6565b50836001600160a01b0316856001600160a01b03167f610b84e79d2d592dda06cd3bc28a4bd2b850972f1751d98d24ea164971527d458585604051610e9f9291906123ff565b60405180910390a38015610eed576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b610efd6113ca565b610f076000611afe565b565b610f116113ca565b6001600160a01b0382166000818152609e6020908152604091829020805460ff191685151590811790915591519182527fc88aad178846d0e2c07194c3169a687af2a62b74dc9c754f52be4f9f9a9c650c910160405180910390a25050565b60655433906001600160a01b03168114610fde5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161058e565b610fe781611afe565b50565b610ff26113ca565b612710811061101457604051631f72d82b60e11b815260040160405180910390fd5b60988190556040518181527fc2a0feb19eb79ffe53f985f818ff7dbabb79247d4e1ecf7b83575a3c26bc6196906020016107c9565b6110516113ca565b606580546001600160a01b0383166001600160a01b031990911681179091556110826033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080600090506000609960009054906101000a90046001600160a01b03166001600160a01b0316638ec083546040518163ffffffff1660e01b8152600401600060405180830381865afa158015611116573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261113e91908101906121ce565b8051909250905060005b818110156113c05760008382815181106111645761116461228a565b60200260200101516040015190506000816001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d691906123c9565b90506000826001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611218573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261124091908101906122a0565b805190915060005b818110156113af5760008382815181106112645761126461228a565b6020908102919091010151604051633af9e66960e01b81526001600160a01b038e8116600483015290911690633af9e66990602401602060405180830381865afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da91906123e6565b905080156113a6576000670de0b6b3a7640000866001600160a01b031663fc57d4df87868151811061130e5761130e61228a565b60200260200101516040518263ffffffff1660e01b815260040161134191906001600160a01b0391909116815260200190565b602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138291906123e6565b61138c908461242e565b6113969190612445565b90506113a2818c612467565b9a50505b50600101611248565b505060019093019250611148915050565b5091949350505050565b6033546001600160a01b03163314610f075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058e565b600080611430836110ba565b9050806000036114435750600192915050565b609b546040516376912f8760e01b81526001600160a01b03858116600483015260009216906376912f8790602401602060405180830381865afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b291906123e6565b609854909150826114c56127108461242e565b6114cf9190612445565b106114de575060019392505050565b5060009392505050565b609a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155591906123e6565b90506000609960009054906101000a90046001600160a01b03166001600160a01b0316638ec083546040518163ffffffff1660e01b8152600401600060405180830381865afa1580156115ac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d491908101906121ce565b8051909250905060005b81811015611a005760008382815181106115fa576115fa61228a565b602002602001015160400151905060606000826001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167291908101906122a0565b80519091508067ffffffffffffffff81111561169057611690611cad565b6040519080825280602002602001820160405280156116b9578160200160208202803683370190505b50925060005b81811015611713578281815181106116d9576116d961228a565b60200260200101518482815181106116f3576116f361228a565b6001600160a01b03909216602092830291909101909101526001016116bf565b5050506000826001600160a01b0316634a76e7276040518163ffffffff1660e01b8152600401600060405180830381865afa158015611756573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261177e919081019061233a565b805190915060005b818110156119ef5760008382815181106117a2576117a261228a565b60200260200101519050609a60009054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182d91906123c9565b6001600160a01b0316036119e657845160005b8181101561198257826001600160a01b031663b9be44ac8883815181106118695761186961228a565b60200260200101518f6040518363ffffffff1660e01b81526004016118a49291906001600160a01b0392831681529116602082015260400190565b6020604051808303816000875af11580156118c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e791906123e6565b50826001600160a01b031663d4a068208883815181106119095761190961228a565b60200260200101518f6040518363ffffffff1660e01b81526004016119449291906001600160a01b0392831681529116602082015260400190565b600060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b5050600190920191506118409050565b5060405163bc7053c160e01b81526001600160a01b038d8116600483015230602483015283169063bc7053c190604401600060405180830381600087803b1580156119cc57600080fd5b505af11580156119e0573d6000803e3d6000fd5b50505050505b50600101611786565b5050600190930192506115de915050565b50609a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e91906123e6565b90506000611a7c858361247a565b90508015610eed57611ab2336064611a9560508561242e565b611a9f9190612445565b609a546001600160a01b03169190611b17565b609754610eed906001600160a01b03166064611a9560148561242e565b600054610100900460ff16611af65760405162461bcd60e51b815260040161058e9061248d565b610f07611b8f565b606580546001600160a01b0319169055610fe781611bbf565b600060405163a9059cbb60e01b8152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610c345760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161058e565b600054610100900460ff16611bb65760405162461bcd60e51b815260040161058e9061248d565b610f0733611afe565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381168114610fe757600080fd5b600060208284031215611c3857600080fd5b8135611c4381611c11565b9392505050565b60005b83811015611c65578181015183820152602001611c4d565b50506000910152565b60008151808452611c86816020860160208601611c4a565b601f01601f19169290920160200192915050565b602081526000611c436020830184611c6e565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715611ce657611ce6611cad565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611d1557611d15611cad565b604052919050565b600067ffffffffffffffff821115611d3757611d37611cad565b50601f01601f191660200190565b600082601f830112611d5657600080fd5b8135611d69611d6482611d1d565b611cec565b818152846020838601011115611d7e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611dad57600080fd5b813567ffffffffffffffff811115611dc457600080fd5b611dd084828501611d45565b949350505050565b600080600080600060a08688031215611df057600080fd5b8535611dfb81611c11565b94506020860135611e0b81611c11565b93506040860135611e1b81611c11565b925060608601359150608086013567ffffffffffffffff811115611e3e57600080fd5b611e4a88828901611d45565b9150509295509295909350565b60008060408385031215611e6a57600080fd5b8235611e7581611c11565b915060208301358015158114611e8a57600080fd5b809150509250929050565b600060208284031215611ea757600080fd5b5035919050565b600181811c90821680611ec257607f821691505b602082108103611ee257634e487b7160e01b600052602260045260246000fd5b50919050565b6000808354611ef681611eae565b60018281168015611f0e5760018114611f2357611f52565b60ff1984168752821515830287019450611f52565b8760005260208060002060005b85811015611f495781548a820152908401908201611f30565b50505082870194505b50929695505050505050565b601f8211156106da576000816000526020600020601f850160051c81016020861015611f875750805b601f850160051c820191505b81811015610eed57828155600101611f93565b815167ffffffffffffffff811115611fc057611fc0611cad565b611fd481611fce8454611eae565b84611f5e565b602080601f8311600181146120095760008415611ff15750858301515b600019600386901b1c1916600185901b178555610eed565b600085815260208120601f198616915b8281101561203857888601518255948401946001909101908401612019565b50858210156120565787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600067ffffffffffffffff82111561208057612080611cad565b5060051b60200190565b805161209581611c11565b919050565b600082601f8301126120ab57600080fd5b815160206120bb611d6483612066565b82815260059290921b840181019181810190868411156120da57600080fd5b8286015b848110156121c357805167ffffffffffffffff808211156120ff5760008081fd5b9088019060a0828b03601f19018113156121195760008081fd5b612121611cc3565b87840151838111156121335760008081fd5b84019250603f83018c136121475760008081fd5b878301516040612159611d6483611d1d565b8281528e8284880101111561216e5760008081fd5b61217d838c8301848901611c4a565b835261218a86820161208a565b8a8401526060945061219d85870161208a565b9083015250608084810151938201939093529201519082015283529183019183016120de565b509695505050505050565b600080604083850312156121e157600080fd5b825167ffffffffffffffff808211156121f957600080fd5b818501915085601f83011261220d57600080fd5b8151602061221d611d6483612066565b82815260059290921b8401810191818101908984111561223c57600080fd5b948201945b8386101561225a57855182529482019490820190612241565b9188015191965090935050508082111561227357600080fd5b506122808582860161209a565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208083850312156122b357600080fd5b825167ffffffffffffffff8111156122ca57600080fd5b8301601f810185136122db57600080fd5b80516122e9611d6482612066565b81815260059190911b8201830190838101908783111561230857600080fd5b928401925b8284101561232f57835161232081611c11565b8252928401929084019061230d565b979650505050505050565b6000602080838503121561234d57600080fd5b825167ffffffffffffffff81111561236457600080fd5b8301601f8101851361237557600080fd5b8051612383611d6482612066565b81815260059190911b820183019083810190878311156123a257600080fd5b928401925b8284101561232f5783516123ba81611c11565b825292840192908401906123a7565b6000602082840312156123db57600080fd5b8151611c4381611c11565b6000602082840312156123f857600080fd5b5051919050565b828152604060208201526000611dd06040830184611c6e565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103ee576103ee612418565b60008261246257634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103ee576103ee612418565b818103818111156103ee576103ee612418565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea264697066735822122047b1cac49b9cff8f21225b357da564dc31cc0f999e1623aedf934cf1e23529a764736f6c63430008160033