0 txs
101.7k calls
constructor
No constructor.
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
assetsManagement
viewfunction assetsManagement() view returns (uint256)
calculateAmounts
viewfunction calculateAmounts(uint256 shares) view returns (uint256)
calculateShares
viewfunction calculateShares(uint256 amounts) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasAddDefaultAdmin
viewfunction hasAddDefaultAdmin() view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address account) view returns (bool)
MONEY_VAULT_ROLE
viewfunction MONEY_VAULT_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
slot1
viewfunction slot1() view returns (bool initialized, address assetId, uint256 pledgedFunds, uint256 cumulativeShares)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
userInfo
viewfunction userInfo(address) view returns (uint256 shares, uint256 amounts)
userNumber
viewfunction userNumber() view returns (uint256)
addDefaultAdmin
nonpayablefunction addDefaultAdmin(address owner)
enablePause
nonpayablefunction enablePause(bool enableOrNot)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address assetId, address owner)
partialUnstake
nonpayablefunction partialUnstake(uint256 amount)
removeWhitelistStake
nonpayablefunction removeWhitelistStake(address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
settlement
nonpayablefunction settlement(address account, uint256 amount)
stake
nonpayablefunction stake(uint256 amount)
unstake
nonpayablefunction unstake()
whitelistStake
nonpayablefunction whitelistStake(address account)
events
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
RemoveWhitelistStake
event RemoveWhitelistStake(address indexed 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)
Settlement
event Settlement(address indexed account, uint256 revenue)
Stake
event Stake(address indexed account, uint256 indexed amount)
Unpaused
event Unpaused(address account)
UnStake
event UnStake(address indexed account, uint256 indexed amount, uint256 shares, uint256 balances)
WhitelistStake
event WhitelistStake(address indexed account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
VanillaMarketMakerVault__cumulativeSharesInsufficient
error VanillaMarketMakerVault__cumulativeSharesInsufficient()
VanillaMarketMakerVault__InsufficientVaultBalance
error VanillaMarketMakerVault__InsufficientVaultBalance()
VanillaMarketMakerVault__InvalidAmount
error VanillaMarketMakerVault__InvalidAmount()
VanillaMarketMakerVault__NotWhitelisted
error VanillaMarketMakerVault__NotWhitelisted()
VanillaMarketMakerVault__PledgeFundInsufficient
error VanillaMarketMakerVault__PledgeFundInsufficient()
creation bytecode
0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611843806100d96000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806375b238fc116100f9578063cefbd3fb11610097578063e1df507c11610071578063e1df507c146103e2578063e35288a0146103f5578063e4ff574c14610408578063f2d4b1551461041b57600080fd5b8063cefbd3fb146103a9578063d547741f146103bc578063da0d15a0146103cf57600080fd5b80639a4ef2a9116100d35780639a4ef2a914610354578063a217fddf14610367578063a694fc3a1461036f578063c61a701a1461038257600080fd5b806375b238fc146103195780638a27a80d1461032e57806391d148541461034157600080fd5b80632def6620116101665780633af32abf116101405780633af32abf146102c85780633ec16194146102db578063485cc955146102ee5780635c975abb1461030157600080fd5b80632def6620146102985780632f2ff15d146102a257806336568abe146102b557600080fd5b806301ffc9a7146101ae5780631959a002146101d65780631f457cb514610212578063202ddd0914610261578063248a9ca31461026e5780632b4e84131461028f575b600080fd5b6101c16101bc3660046115bc565b610423565b60405190151581526020015b60405180910390f35b6101fd6101e43660046115fd565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152016101cd565b6000546001546002546102379260ff8116926101009091046001600160a01b03169184565b6040805194151585526001600160a01b0390931660208501529183015260608201526080016101cd565b6007546101c19060ff1681565b61028161027c366004611618565b61045a565b6040519081526020016101cd565b61028160045481565b6102a061047c565b005b6102a06102b0366004611631565b6105db565b6102a06102c3366004611631565b6105fd565b6101c16102d63660046115fd565b610635565b6102816102e9366004611618565b610642565b6102a06102fc36600461165d565b61069e565b6000805160206117ce8339815191525460ff166101c1565b61028160008051602061178e83398151915281565b6102a061033c366004611687565b6107b0565b6101c161034f366004611631565b61083e565b6102a06103623660046115fd565b610876565b610281600081565b6102a061037d366004611618565b6108d7565b6102817ff28924212ee2890fbc224930cdd1a32f23e479563e1ac551ff84a295ef44997281565b6102a06103b73660046115fd565b610a4a565b6102a06103ca366004611631565b610aaa565b6102a06103dd3660046115fd565b610ac6565b6102816103f0366004611618565b610b3e565b6102a0610403366004611618565b610b78565b6102a06104163660046116b1565b610d59565b610281610d87565b60006001600160e01b03198216637965db0b60e01b148061045457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60009081526000805160206117ae833981519152602052604090206001015490565b610484610dfd565b61048c610e35565b336000908152600360205260408120805460019091015490916104ae83610b3e565b90508260006002015410156104d657604051633a26ed1760e11b815260040160405180910390fd5b806104df610d87565b10156104fe576040516320414b4160e21b815260040160405180910390fd5b816000600101600082825461051391906116e9565b90915550506002805484919060009061052d9084906116e9565b90915550503360009081526003602052604081208181556001908101829055600480549192909161055f9084906116e9565b909155506105829050335b60005461010090046001600160a01b03169083610e66565b6040805184815260208101849052829133917fdb5446d7bffdeb0b5301ec00f352321da31ef3ee552eca5a1a8c9d59b9ef6880910160405180910390a35050506105d960016000805160206117ee83398151915255565b565b6105e48261045a565b6105ed81610ed9565b6105f78383610ee3565b50505050565b6001600160a01b03811633146106265760405163334bd91960e11b815260040160405180910390fd5b6106308282610f88565b505050565b6000610454600583611004565b6002546000908103610652575090565b61065a610d87565b60000361067a576040516320414b4160e21b815260040160405180910390fd5b610682610d87565b60025461068f90846116fc565b6104549190611713565b919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156106e45750825b905060008267ffffffffffffffff1660011480156107015750303b155b90508115801561070f575080155b1561072d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561075757845460ff60401b1916600160401b1785555b6107618787611029565b83156107a757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b7ff28924212ee2890fbc224930cdd1a32f23e479563e1ac551ff84a295ef4499726107da81610ed9565b6107f63360005461010090046001600160a01b03169084610e66565b826001600160a01b03167fbddcc4ab73b8e971706360fbdcce2f609328e78217649695ee3ab811ab52d1628360405161083191815260200190565b60405180910390a2505050565b60009182526000805160206117ae833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061178e83398151915261088e81610ed9565b6108996005836111a1565b156108d3576040516001600160a01b038316907f208de06f9680a973aebb653576acb074375622028cdae68b53b2f62ac4246bfc90600090a25b5050565b6108df610dfd565b6108e7610e35565b6108f2600533611004565b61090f5760405163f1f46a9960e01b815260040160405180910390fd5b600061091a82610642565b336000908152600360205260408120600101549192500361094e576001600460008282546109489190611735565b90915550505b61096b3360005461010090046001600160a01b03169030856111b6565b336000908152600360205260408120600101805484929061098d908490611735565b909155505033600090815260036020526040812080548392906109b1908490611735565b9091555050600280548291906000906109cb908490611735565b9091555050600180548391906000906109e5908490611735565b909155505060005460ff16610a02576000805460ff191660011790555b604051829033907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a90600090a350610a4760016000805160206117ee83398151915255565b50565b60008051602061178e833981519152610a6281610ed9565b610a6d6005836111ef565b156108d3576040516001600160a01b038316907f5d233f5fa6f869d9c97d17e8614dd7b7c7815518ad88ef1fb089a0eaf1731ccf90600090a25050565b610ab38261045a565b610abc81610ed9565b6105f78383610f88565b60008051602061178e833981519152610ade81610ed9565b60075460ff16610b0557610af3600083610ee3565b506007805460ff191660011790555050565b60405162461bcd60e51b81526020600482015260096024820152686f6e6c79206f6e636560b81b60448201526064015b60405180910390fd5b6002546000908103610b6357604051634dec2ce360e01b815260040160405180910390fd5b600254610b6e610d87565b61068f90846116fc565b610b80610dfd565b610b88610e35565b33600090815260036020526040902060010154811580610ba757508082115b15610bc55760405163bb2166a760e01b815260040160405180910390fd5b336000908152600360205260408120548290610be190856116fc565b610beb9190611713565b90506000610bf882610b3e565b9050816000600201541015610c2057604051633a26ed1760e11b815260040160405180910390fd5b80610c29610d87565b1015610c48576040516320414b4160e21b815260040160405180910390fd5b8360006001016000828254610c5d91906116e9565b909155505060028054839190600090610c779084906116e9565b90915550503360009081526003602052604081208054849290610c9b9084906116e9565b90915550503360009081526003602052604081206001018054869290610cc29084906116e9565b9091555050336000908152600360205260408120600101549003610cf957600160046000828254610cf391906116e9565b90915550505b610d023361056a565b6040805183815260208101869052829133917fdb5446d7bffdeb0b5301ec00f352321da31ef3ee552eca5a1a8c9d59b9ef6880910160405180910390a3505050610a4760016000805160206117ee83398151915255565b60008051602061178e833981519152610d7181610ed9565b8115610d7f576108d3611204565b6108d3611267565b600080546040516370a0823160e01b81523060048201526101009091046001600160a01b0316906370a0823190602401602060405180830381865afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190611748565b905090565b6000805160206117ee833981519152805460011901610e2f57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000805160206117ce8339815191525460ff16156105d95760405163d93c066560e01b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261063091859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506112ad565b60016000805160206117ee83398151915255565b610a47813361131e565b60006000805160206117ae833981519152610efe848461083e565b610f7e576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055610f343390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610454565b6000915050610454565b60006000805160206117ae833981519152610fa3848461083e565b15610f7e576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610454565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561106f5750825b905060008267ffffffffffffffff16600114801561108c5750303b155b90508115801561109a575080155b156110b85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156110e257845460ff60401b1916600160401b1785555b6110ea611357565b6110f2611367565b6110fa61136f565b6040805160808101825260008082526001600160a01b038a1660208301819052928201819052606090910181905280546001600160a81b031916610100909202919091178155600181905560025561116060008051602061178e83398151915287610ee3565b61116957600080fd5b6107617ff28924212ee2890fbc224930cdd1a32f23e479563e1ac551ff84a295ef44997260008051602061178e83398151915261137f565b6000611022836001600160a01b0384166113e2565b6040516001600160a01b0384811660248301528381166044830152606482018390526105f79186918216906323b872dd90608401610e93565b6000611022836001600160a01b038416611431565b61120c610e35565b6000805160206117ce833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a150565b61126f61151a565b6000805160206117ce833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611249565b600080602060008451602086016000885af1806112d0576040513d6000823e3d81fd5b50506000513d915081156112e85780600114156112f5565b6001600160a01b0384163b155b156105f757604051635274afe760e01b81526001600160a01b0385166004820152602401610b35565b611328828261083e565b6108d35760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b35565b61135f61154a565b6105d9611593565b6105d961154a565b61137761154a565b6105d96115b4565b6000805160206117ae83398151915260006113998461045a565b600085815260208490526040808220600101869055519192508491839187917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a450505050565b600081815260018301602052604081205461142957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610454565b506000610454565b60008181526001830160205260408120548015610f7e5760006114556001836116e9565b8554909150600090611469906001906116e9565b90508082146114ce57600086600001828154811061148957611489611761565b90600052602060002001549050808760000184815481106114ac576114ac611761565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806114df576114df611777565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610454565b6000805160206117ce8339815191525460ff166105d957604051638dfc202b60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166105d957604051631afcd79f60e31b815260040160405180910390fd5b61159b61154a565b6000805160206117ce833981519152805460ff19169055565b610ec561154a565b6000602082840312156115ce57600080fd5b81356001600160e01b03198116811461102257600080fd5b80356001600160a01b038116811461069957600080fd5b60006020828403121561160f57600080fd5b611022826115e6565b60006020828403121561162a57600080fd5b5035919050565b6000806040838503121561164457600080fd5b82359150611654602084016115e6565b90509250929050565b6000806040838503121561167057600080fd5b611679836115e6565b9150611654602084016115e6565b6000806040838503121561169a57600080fd5b6116a3836115e6565b946020939093013593505050565b6000602082840312156116c357600080fd5b8135801515811461102257600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610454576104546116d3565b8082028115828204841417610454576104546116d3565b60008261173057634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610454576104546116d3565b60006020828403121561175a57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe325e5afeab8e54692aab6bf29d8de8be0b6d00b9d50f929c92b05522731ed5af02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122015a05eacda2498525553bc89d160038732797b01e82e4f6b93b987b4f42ce69064736f6c634300081c0033