0 txs
1 call
constructor
constructor(address _admin, address _mamoStrategyRegistry, address _mamoBackend, address _stakingRegistry, address _multiRewards, address _mamoToken, address _strategyImplementation, uint256 _strategyTypeId, uint256 _defaultSlippageInBps)
functions
BACKEND_ROLE
viewfunction BACKEND_ROLE() view returns (bytes32)
computeStrategyAddress
viewfunction computeStrategyAddress(address user) view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultSlippageInBps
viewfunction defaultSlippageInBps() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
mamoStrategyRegistry
viewfunction mamoStrategyRegistry() view returns (address)
mamoStrategyRegistryInterface
viewfunction mamoStrategyRegistryInterface() view returns (address)
mamoToken
viewfunction mamoToken() view returns (address)
MAX_SLIPPAGE_IN_BPS
viewfunction MAX_SLIPPAGE_IN_BPS() view returns (uint256)
multiRewards
viewfunction multiRewards() view returns (address)
stakingRegistry
viewfunction stakingRegistry() view returns (address)
strategyImplementation
viewfunction strategyImplementation() view returns (address)
strategyTypeId
viewfunction strategyTypeId() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
createStrategy
nonpayablefunction createStrategy(address user) returns (address strategy)
createStrategyForUser
nonpayablefunction createStrategyForUser(address user) returns (address strategy)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
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)
StrategyCreated
event StrategyCreated(address indexed user, address indexed strategy)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
Create2EmptyBytecode
error Create2EmptyBytecode()
FailedDeployment
error FailedDeployment()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
creation bytecode
0x6101803461046457601f61158f38819003918201601f19168301916001600160401b038311848410176104685780849261012094604052833981010312610464576100498161047c565b6100556020830161047c565b916100626040820161047c565b9261006f6060830161047c565b61007b6080840161047c565b61008760a0850161047c565b9161009460c0860161047c565b9361010060e08701519601519660018060a01b0381161561041f576001600160a01b0382169889156103ce576001600160a01b03811615610389576001600160a01b03841615610344576001600160a01b038516156102ff576001600160a01b038616156102ba576001600160a01b03871615610266578715610221576109c489116101dc5761012661012c92610490565b50610506565b5060805260a05260c05260e05261010052610120526101405261016052604051610f95908161059a82396080518181816102500152610752015260a0518181816105320152610777015260c0518181816103ae01526107a1015260e05181818161016101526107ca01526101005181818161020c015281816106850152610abc01526101205181818161029601526107f5015261014051816104a701526101605181818161036a015261088c0152f35b60405162461bcd60e51b815260206004820152601860248201527f536c6970706167652065786365656473206d6178696d756d00000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f53747261746567792074797065206964206e6f742073657400000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602660248201527f496e76616c6964207374726174656779496d706c656d656e746174696f6e206160448201526564647265737360d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206d616d6f546f6b656e2061646472657373000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206d756c7469526577617264732061646472657373000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964207374616b696e6752656769737472792061646472657373006044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206d616d6f4261636b656e64206164647265737300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526024808201527f496e76616c6964206d616d6f53747261746567795265676973747279206164646044820152637265737360e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646d696e206164647265737300000000000000000000006044820152606490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361046457565b6001600160a01b0381165f9081525f51602061156f5f395f51905f52602052604090205460ff16610501576001600160a01b03165f8181525f51602061156f5f395f51905f5260205260408120805460ff191660011790553391905f51602061152f5f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f51602061154f5f395f51905f52602052604090205460ff16610501576001600160a01b03165f8181525f51602061154f5f395f51905f5260205260408120805460ff191660011790553391907f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f905f51602061152f5f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c9081629d9aa9146105205750806301ffc9a7146104ca5780631be5938614610490578063248a9ca31461045e5780632f2ff15d1461042157806336568abe146103dd578063433efbc6146103995780637316bcd1146101d45780638ae63f961461035557806391d148541461030d57806392c2becc146102d3578063a217fddf146102b9578063a3b31fb81461027f578063b6d3dd121461023b578063bd922b1c146101f7578063bf41db30146101d4578063d547741f14610190578063d7b00bcc1461014c578063da618b8d146101175763e22591d6146100f7575f80fd5b34610113575f3660031901126101135760206040516109c48152f35b5f80fd5b3461011357602036600319011261011357602061013a610135610577565b610a55565b6040516001600160a01b039091168152f35b34610113575f366003190112610113576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610113576040366003190112610113576101d26004356101af610561565b906101cd6101c8825f525f602052600160405f20015490565b610b24565b610be4565b005b3461011357602036600319011261011357602061013a6101f2610577565b6105c3565b34610113575f366003190112610113576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610113575f366003190112610113576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610113575f3660031901126101135760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610113575f3660031901126101135760206040515f8152f35b34610113575f3660031901126101135760206040517f25cf2b509f2a7f322675b2a5322b182f44ad2c03ac941a0af17c9b178f5d5d5f8152f35b3461011357604036600319011261011357610326610561565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610113575f366003190112610113576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610113575f366003190112610113576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610113576040366003190112610113576103f6610561565b336001600160a01b03821603610412576101d290600435610be4565b63334bd91960e11b5f5260045ffd5b34610113576040366003190112610113576101d2600435610440610561565b906104596101c8825f525f602052600160405f20015490565b610b5c565b346101135760203660031901126101135760206104886004355f525f602052600160405f20015490565b604051908152f35b34610113575f3660031901126101135760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101135760203660031901126101135760043563ffffffff60e01b811680910361011357602090637965db0b60e01b811490811561050f575b506040519015158152f35b6301ffc9a760e01b14905082610504565b34610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602435906001600160a01b038216820361011357565b600435906001600160a01b038216820361011357565b90601f8019910116810190811067ffffffffffffffff8211176105af57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b038116905f908215610a1957335f9081527f48c7bdbf6e737fbd4f28e9ac2ee21ca1cecfc20cb008a302f41dcc98ef949678602052604090205460ff168015610a10575b156109ba5761061c81610a55565b3b6109755760405160208101916bffffffffffffffffffffffff199060601b1682526014815261064d60348261058d565b5190206040516102fb610663602082018361058d565b8082526020820190610c6582396107026040519160208084016106d1856106c37f00000000000000000000000000000000000000000000000000000000000000008460609160018060a01b03168152604060208201525f60408201520190565b03601f19810187528661058d565b60405194859383850197518091895e840190838201905f8252519283915e01015f815203601f19810183528261058d565b8051156109665751905ff5913d151983151661094c576001600160a01b0383169182156109575760405160c0810181811067ffffffffffffffff8211176105af5760409081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f00000000000000000000000000000000000000000000000000000000000000008116602084019081527f000000000000000000000000000000000000000000000000000000000000000082169284019283527f0000000000000000000000000000000000000000000000000000000000000000909116606084019081527f00000000000000000000000000000000000000000000000000000000000000006080850190815260a08501878152939092883b156101135760405163687a004f60e01b815295516001600160a01b0390811660048801529051811660248701529051811660448601529051811660648501529051608484015290511660a48201525f8160c48183885af1801561094c57610939575b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561093557818091604460405180948193631806694360e01b83528860048401528960248401525af1801561092a57610912575b50807fe883fcf93aedd43ecd9bf23ac408c7e71516e9374b2890915c7f5aa0a27a441191a390565b61091d82809261058d565b610927575f6108ea565b80fd5b6040513d84823e3d90fd5b5080fd5b61094591505f9061058d565b5f5f610889565b6040513d5f823e3d90fd5b63b06ebf3d60e01b5f5260045ffd5b631328927760e21b5f5260045ffd5b60405162461bcd60e51b815260206004820152601760248201527f537472617465677920616c7265616479206578697374730000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602860248201527f4f6e6c79206261636b656e64206f7220757365722063616e2063726561746520604482015267737472617465677960c01b6064820152608490fd5b5082331461060e565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b6044820152606490fd5b600b9060405160208101916bffffffffffffffffffffffff199060601b16825260148152610a8460348261058d565b5190206040516102fb610a9a602082018361058d565b8082526020820190610c658239610afa6040519160208084016106d1856106c37f00000000000000000000000000000000000000000000000000000000000000008460609160018060a01b03168152604060208201525f60408201520190565b5190209060405191604083015260208201523081520160ff8153605590206001600160a01b031690565b5f8181526020818152604080832033845290915290205460ff1615610b465750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16610bde575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615610bde575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a460019056fe60806040526102fb8038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b60405160e0908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe608060405260043610156055575b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156051573d5ff35b3d5ffd5b5f3560e01c63aaf10f4203600d573460a6575f36600319011260a6577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b03166080908152602090f35b5f80fdfea2646970667358221220aaaafb09f835fee2d48cd67f441233eb94e11c48c9c27a6d08ff1bbe3929755064736f6c634300081c0033a2646970667358221220b6ec160f6e4406c938ecc7e1886d470297862409595b20ba277585af08bceb4564736f6c634300081c00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d48c7bdbf6e737fbd4f28e9ac2ee21ca1cecfc20cb008a302f41dcc98ef949678ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5000000000000000000000000fe2ff8927ef602ddac27e314a199d16be617786000000000000000000000000046a5624c2ba92c08aba4b206297052edf14baa920000000000000000000000001a3ae2b72a21c443a189235c15bcbca9c81c3a7c000000000000000000000000a4f24b25cebca9f48552368a376e8eda8be17e32000000000000000000000000f13d09ed3cbdd1c930d4de74808de1f33b6b3d4f0000000000000000000000007300b37dfdfab110d83290a29dfb31b1740219fe0000000000000000000000002785d56fa8fe2bbf1397361d14942b82edf0774900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000064