3 txs
85 calls
constructor
constructor(address evc, address evkFactory_, address eulerSwapImpl_, address feeOwner_, address feeRecipientSetter_)
functions
computePoolAddress
viewfunction computePoolAddress(tuple poolParams, bytes32 salt) view returns (address)
deploymentTimestamp
viewfunction deploymentTimestamp() view returns (uint256)
eulerSwapImpl
viewfunction eulerSwapImpl() view returns (address)
EVC
viewfunction EVC() view returns (address)
evkFactory
viewfunction evkFactory() view returns (address)
MAX_PROTOCOL_FEE
viewfunction MAX_PROTOCOL_FEE() view returns (uint256)
MIN_PROTOCOL_FEE
viewfunction MIN_PROTOCOL_FEE() view returns (uint256)
owner
viewfunction owner() view returns (address)
poolByEulerAccount
viewfunction poolByEulerAccount(address eulerAccount) view returns (address)
pools
viewfunction pools() view returns (address[])
poolsByPair
viewfunction poolsByPair(address asset0, address asset1) view returns (address[])
poolsByPairLength
viewfunction poolsByPairLength(address asset0, address asset1) view returns (uint256)
poolsByPairSlice
viewfunction poolsByPairSlice(address asset0, address asset1, uint256 start, uint256 end) view returns (address[])
poolsLength
viewfunction poolsLength() view returns (uint256)
poolsSlice
viewfunction poolsSlice(uint256 start, uint256 end) view returns (address[])
protocolFee
viewfunction protocolFee() view returns (uint256)
protocolFeeRecipient
viewfunction protocolFeeRecipient() view returns (address)
recipientSetter
viewfunction recipientSetter() view returns (address)
deployPool
nonpayablefunction deployPool(tuple params, tuple initialState, bytes32 salt) returns (address)
enableProtocolFee
nonpayablefunction enableProtocolFee()
setProtocolFee
nonpayablefunction setProtocolFee(uint256 newFee)
setProtocolFeeRecipient
nonpayablefunction setProtocolFeeRecipient(address newRecipient)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
uninstallPool
nonpayablefunction uninstallPool()
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
PoolConfig
event PoolConfig(address indexed pool, (address vault0, address vault1, address eulerAccount, uint112 equilibriumReserve0, uint112 equilibriumReserve1, uint256 priceX, uint256 priceY, uint256 concentrationX, uint256 concentrationY, uint256 fee, uint256 protocolFee, address protocolFeeRecipient) params, (uint112 currReserve0, uint112 currReserve1) initialState)
PoolDeployed
event PoolDeployed(address indexed asset0, address indexed asset1, address indexed eulerAccount, address pool)
PoolUninstalled
event PoolUninstalled(address indexed asset0, address indexed asset1, address indexed eulerAccount, address pool)
ProtocolFeeRecipientSet
event ProtocolFeeRecipientSet(address protocolFeeRecipient)
ProtocolFeeSet
event ProtocolFeeSet(uint256 protocolFee)
errors
ControllerDisabled
error ControllerDisabled()
E_DeploymentFailed
error E_DeploymentFailed()
EVC_InvalidAddress
error EVC_InvalidAddress()
InvalidFee
error InvalidFee()
InvalidProtocolFee
error InvalidProtocolFee()
InvalidQuery
error InvalidQuery()
InvalidVaultImplementation
error InvalidVaultImplementation()
NotAuthorized
error NotAuthorized()
OldOperatorStillInstalled
error OldOperatorStillInstalled()
OperatorNotInstalled
error OperatorNotInstalled()
RecipientSetAlready
error RecipientSetAlready()
SliceOutOfBounds
error SliceOutOfBounds()
Unauthorized
error Unauthorized()
creation bytecode
0x610120604052348015610010575f5ffd5b5060405161224338038061224383398101604081905261002f916100e7565b818181876001600160a01b03811661005a57604051638133abd160e01b815260040160405180910390fd5b6001600160a01b039081166080525f80546001600160a01b03191691831691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3504260c0526001600160a01b0390811660a05294851660e052505050166101005250610148565b80516001600160a01b03811681146100e2575f5ffd5b919050565b5f5f5f5f5f60a086880312156100fb575f5ffd5b610104866100cc565b9450610112602087016100cc565b9350610120604087016100cc565b925061012e606087016100cc565b915061013c608087016100cc565b90509295509295909350565b60805160a05160c05160e051610100516120716101d25f395f818161036e0152818161042d0152818161080601526116c101525f81816102e50152818161062a01526106e601525f818161032c0152610bac01525f81816102510152610ce101525f81816102bc0152818161110e0152818161116201528181611265015261150c01526120715ff3fe608060405234801561000f575f5ffd5b506004361061018f575f3560e01c8063b0e21e8a116100dd578063dbecb20811610088578063f2fde38b11610063578063f2fde38b146103b6578063f75b102d146103c9578063ff51c193146103d1575f5ffd5b8063dbecb20814610369578063e521cb9214610390578063f1675fc6146103a3575f5ffd5b8063bfc12c05116100b8578063bfc12c0514610327578063c5c51dca1461034e578063d1279f0914610356575f5ffd5b8063b0e21e8a14610307578063b8ca3b8314610310578063bc9abfa01461031f575f5ffd5b806367e4f8f21161013d5780638da5cb5b116101185780638da5cb5b1461029b578063a70354a1146102ba578063a8b83c02146102e0575f5ffd5b806367e4f8f21461024c578063729b257914610273578063787dce3d14610286575f5ffd5b806344f590661161016d57806344f590661461020a5780634b4409cb1461021957806364df049e1461022c575f5ffd5b8063041d1ad0146101935780630e19c38e146101bc5780632716ae66146101f4575b5f5ffd5b6101a66101a1366004611947565b610409565b6040516101b39190611967565b60405180910390f35b6101cf6101ca366004611b49565b610420565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b3565b6101fc610525565b6040519081526020016101b3565b6101fc67016345785d8a000081565b6101a6610227366004611b74565b610535565b6002546101cf9073ffffffffffffffffffffffffffffffffffffffff1681565b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6101cf610281366004611bab565b610572565b610299610294366004611c79565b610a45565b005b5f546101cf9073ffffffffffffffffffffffffffffffffffffffff1681565b7f00000000000000000000000000000000000000000000000000000000000000006101cf565b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc60015481565b6101fc6703782dace9d9000081565b610299610b7f565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101a6610c81565b6101fc610364366004611b74565b610c8d565b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b61029961039e366004611c90565b610cc9565b6101a66103b1366004611cab565b610dcd565b6102996103c4366004611c90565b610e15565b610299610f04565b6101cf6103df366004611c90565b73ffffffffffffffffffffffffffffffffffffffff9081165f908152600360205260409020541690565b606061041760048484610f16565b90505b92915050565b5f60ff60f81b30836104717f00000000000000000000000000000000000000000000000000000000000000008760405160200161045d9190611e0c565b604051602081830303815290604052611052565b80516020918201206040516104e895949392017fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660018401526015830152603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b5f61053060046110e0565b905090565b73ffffffffffffffffffffffffffffffffffffffff8083165f908152600660209081526040808320938516835292905220606090610417906110e9565b5f836040015173ffffffffffffffffffffffffffffffffffffffff166105966110f5565b73ffffffffffffffffffffffffffffffffffffffff16146105e3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83516040517f2971038800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690632971038890602401602060405180830381865afa158015610671573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106959190611e2a565b8015610751575060208401516040517f2971038800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690632971038890602401602060405180830381865afa15801561072d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190611e2a565b610787576040517f2a4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001548461014001511480156107bd575060025461016085015173ffffffffffffffffffffffffffffffffffffffff9081169116145b6107f3576040517fba97f83800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61080084604001516111e8565b5f61084b7f0000000000000000000000000000000000000000000000000000000000000000866040516020016108369190611e0c565b60405160208183030381529060405285611451565b905061085b8560400151826114bf565b6040517f536aeb7200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063536aeb72906108ad908790600401611e43565b5f604051808303815f87803b1580156108c4575f5ffd5b505af11580156108d6573d5f5f3e3d5ffd5b505050505f5f8273ffffffffffffffffffffffffffffffffffffffff166367e4ac2c6040518163ffffffff1660e01b81526004016040805180830381865afa158015610924573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109489190611e6e565b91509150866040015173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5f7560a5797edc6f72421362defa094d690eb9f7ced3cc5a5c13383502e4fcc5866040516109e0919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60405180910390a48273ffffffffffffffffffffffffffffffffffffffff167f171ab69606430b366a6c80bb4f4eb9d9692dc820e5e6c56a048a4a09c4c16ef58888604051610a30929190611e9b565b60405180910390a250909150505b9392505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610aca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8067016345785d8a000011158015610aea57506703782dace9d900008111155b8015610b0d575060025473ffffffffffffffffffffffffffffffffffffffff1615155b610b43576040517f58d620b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018190556040518181527fdb5aafdb29539329e37d4e3ee869bc4031941fd55a5dfc92824fbe34b204e30d906020015b60405180910390a150565b5f610b886116be565b73ffffffffffffffffffffffffffffffffffffffff1614158015610bd95750610bd57f00000000000000000000000000000000000000000000000000000000000000006301e13380611f02565b4210155b8015610bfc575060025473ffffffffffffffffffffffffffffffffffffffff1615155b8015610c085750600154155b610c3e576040517f58d620b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67016345785d8a000060018190556040519081527fdb5aafdb29539329e37d4e3ee869bc4031941fd55a5dfc92824fbe34b204e30d9060200160405180910390a1565b606061053060046110e9565b73ffffffffffffffffffffffffffffffffffffffff8083165f9081526006602090815260408083209385168352929052908120610417906110e0565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610d24575060025473ffffffffffffffffffffffffffffffffffffffff16155b610d5a576040517f7523678900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5034c7ac62cd0031ddf2f1dcde2858132dd886d61032c9b2d4a99f0490e80ee490602001610b74565b73ffffffffffffffffffffffffffffffffffffffff8085165f908152600660209081526040808320938716835292905220606090610e0c908484610f16565b95945050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610ac1565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b610f14610f0f6110f5565b6111e8565b565b60605f610f22856110e0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8303610f4f578092505b83831080610f5c57508083115b15610f93576040517f3b99b53d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610f9e8585611f15565b67ffffffffffffffff811115610fb657610fb66119bf565b604051908082528060200260200182016040528015610fdf578160200160208202803683370190505b5090505f5b610fee8686611f15565b811015611048576110096110028288611f02565b889061174c565b82828151811061101b5761101b611f28565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101610fe4565b5095945050505050565b60408051808201825260208082527f600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d738183015282518084018452600d81527f5af43d3d93803e603457fd5bf3000000000000000000000000000000000000008183015292516060936110c993928792879101611f6c565b604051602081830303815290604052905092915050565b5f61041a825490565b60605f610a3e83611757565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681036111e3576040517f18503a1e0000000000000000000000000000000000000000000000000000000081525f60048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906318503a1e906024016040805180830381865afa1580156111bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111df9190611fc0565b5090505b919050565b73ffffffffffffffffffffffffffffffffffffffff8082165f908152600360205260409020541680611218575050565b6040517f1647292a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301527f00000000000000000000000000000000000000000000000000000000000000001690631647292a90604401602060405180830381865afa1580156112aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ce9190611e2a565b15611305576040517f2ff7015500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f8273ffffffffffffffffffffffffffffffffffffffff166367e4ac2c6040518163ffffffff1660e01b81526004016040805180830381865afa15801561134f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113739190611e6e565b90925090506113836004846117b0565b5073ffffffffffffffffffffffffffffffffffffffff8083165f9081526006602090815260408083209385168352929052206113bf90846117b0565b5073ffffffffffffffffffffffffffffffffffffffff8481165f8181526003602090815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590518684168152919284811692908616917f2ffc311844ee95e765c323de68c702b660e7c87b11291797aacf64b5a492b80e910160405180910390a450505050565b5f5f61145d8585611052565b9050828151602083015ff5915073ffffffffffffffffffffffffffffffffffffffff82166114b7576040517fbe4dab5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b6040517f1647292a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015282811660248301527f00000000000000000000000000000000000000000000000000000000000000001690631647292a90604401602060405180830381865afa158015611551573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115759190611e2a565b6115ab576040517f715756a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f8273ffffffffffffffffffffffffffffffffffffffff166367e4ac2c6040518163ffffffff1660e01b81526004016040805180830381865afa1580156115f5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116199190611e6e565b73ffffffffffffffffffffffffffffffffffffffff8681165f90815260036020526040902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016918716919091179055909250905061167b6004846117d1565b5073ffffffffffffffffffffffffffffffffffffffff8083165f9081526006602090815260408083209385168352929052206116b790846117d1565b5050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dc4c90d36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611728573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105309190611ff3565b5f61041783836117f2565b6060815f018054806020026020016040519081016040528092919081815260200182805480156117a457602002820191905f5260205f20905b815481526020019060010190808311611790575b50505050509050919050565b5f6104178373ffffffffffffffffffffffffffffffffffffffff8416611818565b5f6104178373ffffffffffffffffffffffffffffffffffffffff84166118fb565b5f825f01828154811061180757611807611f28565b905f5260205f200154905092915050565b5f81815260018301602052604081205480156118f2575f61183a600183611f15565b85549091505f9061184d90600190611f15565b90508082146118ac575f865f01828154811061186b5761186b611f28565b905f5260205f200154905080875f01848154811061188b5761188b611f28565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806118bd576118bd61200e565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061041a565b5f91505061041a565b5f81815260018301602052604081205461194057508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561041a565b505f61041a565b5f5f60408385031215611958575f5ffd5b50508035926020909101359150565b602080825282518282018190525f918401906040840190835b818110156119b457835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101611980565b509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051610180810167ffffffffffffffff81118282101715611a35577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405290565b73ffffffffffffffffffffffffffffffffffffffff81168114611a5c575f5ffd5b50565b80356111e381611a3b565b80356dffffffffffffffffffffffffffff811681146111e3575f5ffd5b5f6101808284031215611a98575f5ffd5b611aa06119ec565b9050611aab82611a5f565b8152611ab960208301611a5f565b6020820152611aca60408301611a5f565b6040820152611adb60608301611a6a565b6060820152611aec60808301611a6a565b608082015260a0828101359082015260c0808301359082015260e08083013590820152610100808301359082015261012080830135908201526101408083013590820152611b3d6101608301611a5f565b61016082015292915050565b5f5f6101a08385031215611b5b575f5ffd5b611b658484611a87565b94610180939093013593505050565b5f5f60408385031215611b85575f5ffd5b8235611b9081611a3b565b91506020830135611ba081611a3b565b809150509250929050565b5f5f5f8385036101e0811215611bbf575f5ffd5b611bc98686611a87565b935060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8082011215611bfa575f5ffd5b506040805190810167ffffffffffffffff81118282101715611c43577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604052611c536101808601611a6a565b8152611c626101a08601611a6a565b6020820152929592945050506101c0919091013590565b5f60208284031215611c89575f5ffd5b5035919050565b5f60208284031215611ca0575f5ffd5b8135610a3e81611a3b565b5f5f5f5f60808587031215611cbe575f5ffd5b8435611cc981611a3b565b93506020850135611cd981611a3b565b93969395505050506040820135916060013590565b805173ffffffffffffffffffffffffffffffffffffffff1682526020810151611d2f602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040810151611d57604084018273ffffffffffffffffffffffffffffffffffffffff169052565b506060810151611d7960608401826dffffffffffffffffffffffffffff169052565b506080810151611d9b60808401826dffffffffffffffffffffffffffff169052565b5060a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610140810151610140830152610160810151611e0761016084018273ffffffffffffffffffffffffffffffffffffffff169052565b505050565b610180810161041a8284611cee565b805180151581146111e3575f5ffd5b5f60208284031215611e3a575f5ffd5b61041782611e1b565b6040810161041a828480516dffffffffffffffffffffffffffff908116835260209182015116910152565b5f5f60408385031215611e7f575f5ffd5b8251611e8a81611a3b565b6020840151909250611ba081611a3b565b6101c08101611eaa8285611cee565b82516dffffffffffffffffffffffffffff9081166101808401526020840151166101a0830152610a3e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561041a5761041a611ed5565b8181038181111561041a5761041a611ed5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f611f778287611f55565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b168152611fb5611faf6014830187611f55565b85611f55565b979650505050505050565b5f5f60408385031215611fd1575f5ffd5b8251611fdc81611a3b565b9150611fea60208401611e1b565b90509250929050565b5f60208284031215612003575f5ffd5b8151610a3e81611a3b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220450db552ac89efca2f6c82b429d9098a41fc4424498f7037707a0b7b46e9763a64736f6c634300081b00330000000000000000000000000c9a3dd6b8f28529d72d7f9ce918d493519ee38300000000000000000000000029a56a1b8214d9cf7c5561811750d5cbdb45cc8e000000000000000000000000c35a0fda69e9d71e68c0d9cbb541adfd21d6b117000000000000000000000000cad001c30e96765ac90307669d578219d4fb1dce000000000000000000000000cef02dff42ac3b2462dd4ebb509c29fcf331a49c