Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "OnlyGovernanceAllowed", "type": "error" }, { "inputs": [], "name": "OnlyOperatorAllowed", "type": "error" }, { "inputs": [], "name": "OnlyRestakingPoolAllowed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newName", "type": "string" } ], "name": "NameChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "SymbolChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newName", "type": "string" } ], "name": "changeName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "changeSymbol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "config", "outputs": [ { "internalType": "contract IProtocolConfig", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "convertToAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IProtocolConfig", "name": "config", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ratio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "totalManagedEth", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611769806100df6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806371ca337d116100b85780639dc29fac1161007c5780639dc29fac146102a7578063a3895fff146102ba578063a9059cbb146102cd578063c6e6f592146102e0578063dd62ed3e146102f3578063ff1bdd431461030657600080fd5b806371ca337d1461026157806379502c55146102695780638456cb5914610284578063906571471461028c57806395d89b411461029f57600080fd5b8063313ce5671161010a578063313ce567146101d45780633f4ba83a146101e357806340c10f19146101ed5780635353a2d8146102005780635c975abb1461021357806370a082311461022b57600080fd5b806301e1d1141461014757806306fdde0314610162578063095ea7b31461017757806318160ddd1461019a57806323b872dd146101c1575b600080fd5b61014f610319565b6040519081526020015b60405180910390f35b61016a61034b565b6040516101599190611263565b61018a6101853660046112c6565b6103dd565b6040519015158152602001610159565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025461014f565b61018a6101cf3660046112f2565b6103f7565b60405160128152602001610159565b6101eb61041d565b005b6101eb6101fb3660046112c6565b6104cd565b6101eb61020e3660046113d6565b610589565b6000805160206117148339815191525460ff1661018a565b61014f610239366004611413565b6001600160a01b031660009081526000805160206116f4833981519152602052604090205490565b61014f61063b565b6000546040516001600160a01b039091168152602001610159565b6101eb610713565b6101eb61029a366004611430565b6107c1565b61016a6108f7565b6101eb6102b53660046112c6565b610906565b6101eb6102c83660046113d6565b6109be565b61018a6102db3660046112c6565b610a6d565b61014f6102ee3660046114a6565b610a7b565b61014f6103013660046114bf565b610a9a565b61014f6103143660046114a6565b610ae4565b60006103466103147f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b905090565b60606032805461035a906114f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610386906114f8565b80156103d35780601f106103a8576101008083540402835291602001916103d3565b820191906000526020600020905b8154815290600101906020018083116103b657829003601f168201915b5050505050905090565b6000336103eb818585610b04565b60019150505b92915050565b600033610405858285610b16565b610410858585610b81565b60019150505b9392505050565b60008054906101000a90046001600160a01b03166001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190611532565b6001600160a01b0316336001600160a01b0316146104c35760405163e2d4f15f60e01b815260040160405180910390fd5b6104cb610be0565b565b6104d5610c41565b60008054906101000a90046001600160a01b03166001600160a01b0316637745165b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190611532565b6001600160a01b0316336001600160a01b03161461057b576040516301beb2d760e51b815260040160405180910390fd5b6105858282610c72565b5050565b60008054906101000a90046001600160a01b03166001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fe9190611532565b6001600160a01b0316336001600160a01b03161461062f5760405163e2d4f15f60e01b815260040160405180910390fd5b61063881610ca8565b50565b600080546001600160a01b03166001600160a01b031663c5db8a7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190611532565b60405163754b270760e01b81523060048201526001600160a01b03919091169063754b270790602401602060405180830381865afa1580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610346919061154f565b60008054906101000a90046001600160a01b03166001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190611532565b6001600160a01b0316336001600160a01b0316146107b95760405163e2d4f15f60e01b815260040160405180910390fd5b6104cb610ce4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156108075750825b905060008267ffffffffffffffff1660011480156108245750303b155b905081158015610832575080155b156108505760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561087a57845460ff60401b1916600160401b1785555b61088388610d2d565b61088d8787610d57565b610895610d69565b61089d610d69565b6108a78787610d79565b83156108ed57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60606033805461035a906114f8565b61090e610c41565b60008054906101000a90046001600160a01b03166001600160a01b0316637745165b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109839190611532565b6001600160a01b0316336001600160a01b0316146109b4576040516301beb2d760e51b815260040160405180910390fd5b6105858282610d8b565b60008054906101000a90046001600160a01b03166001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190611532565b6001600160a01b0316336001600160a01b031614610a645760405163e2d4f15f60e01b815260040160405180910390fd5b61063881610dc1565b6000336103eb818585610b81565b60006103f1610a8861063b565b8390670de0b6b3a76400006000610dfd565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b60006103f1670de0b6b3a7640000610afa61063b565b8491906001610dfd565b610b118383836001610e4e565b505050565b6000610b228484610a9a565b90506000198114610b7b5781811015610b6c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b610b7b84848484036000610e4e565b50505050565b6001600160a01b038316610bab57604051634b637e8f60e11b815260006004820152602401610b63565b6001600160a01b038216610bd55760405163ec442f0560e01b815260006004820152602401610b63565b610b11838383610f36565b610be8610f49565b600080516020611714833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b0390911681526020015b60405180910390a150565b6000805160206117148339815191525460ff16156104cb5760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038216610c9c5760405163ec442f0560e01b815260006004820152602401610b63565b61058560008383610f36565b6032610cb482826115b6565b507f4737457377f528cc8afd815f73ecb8b05df80d047dbffc41c17750a4033592bc81604051610c369190611263565b610cec610c41565b600080516020611714833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610c22565b610d35610f79565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610d5f610f79565b6105858282610fc2565b610d71610f79565b6104cb611013565b610d8282610ca8565b61058581610dc1565b6001600160a01b038216610db557604051634b637e8f60e11b815260006004820152602401610b63565b61058582600083610f36565b6033610dcd82826115b6565b507f57c940aa14b51ea5f96b7a2bea757ce355d996e2c5d7a3c68aff1c75a326269b81604051610c369190611263565b600080610e0b868686611034565b9050610e16836110f8565b8015610e32575060008480610e2d57610e2d611676565b868809115b15610e4557610e4260018261168c565b90505b95945050505050565b6000805160206116f48339815191526001600160a01b038516610e875760405163e602df0560e01b815260006004820152602401610b63565b6001600160a01b038416610eb157604051634a1406b160e11b815260006004820152602401610b63565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610f2f57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610f2691815260200190565b60405180910390a35b5050505050565b610f3e610c41565b610b11838383611125565b6000805160206117148339815191525460ff166104cb57604051638dfc202b60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104cb57604051631afcd79f60e31b815260040160405180910390fd5b610fca610f79565b6000805160206116f48339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0361100484826115b6565b5060048101610b7b83826115b6565b61101b610f79565b600080516020611714833981519152805460ff19169055565b600083830281600019858709828110838203039150508060000361106b5783828161106157611061611676565b0492505050610416565b80841161108b5760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000600282600381111561110e5761110e6116ad565b61111891906116c3565b60ff166001149050919050565b6000805160206116f48339815191526001600160a01b0384166111615781816002016000828254611156919061168c565b909155506111d39050565b6001600160a01b038416600090815260208290526040902054828110156111b45760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610b63565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b0383166111f1576002810180548390039055611210565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161125591815260200190565b60405180910390a350505050565b600060208083528351808285015260005b8181101561129057858101830151858201604001528201611274565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461063857600080fd5b600080604083850312156112d957600080fd5b82356112e4816112b1565b946020939093013593505050565b60008060006060848603121561130757600080fd5b8335611312816112b1565b92506020840135611322816112b1565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261135a57600080fd5b813567ffffffffffffffff8082111561137557611375611333565b604051601f8301601f19908116603f0116810190828211818310171561139d5761139d611333565b816040528381528660208588010111156113b657600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156113e857600080fd5b813567ffffffffffffffff8111156113ff57600080fd5b61140b84828501611349565b949350505050565b60006020828403121561142557600080fd5b8135610416816112b1565b60008060006060848603121561144557600080fd5b8335611450816112b1565b9250602084013567ffffffffffffffff8082111561146d57600080fd5b61147987838801611349565b9350604086013591508082111561148f57600080fd5b5061149c86828701611349565b9150509250925092565b6000602082840312156114b857600080fd5b5035919050565b600080604083850312156114d257600080fd5b82356114dd816112b1565b915060208301356114ed816112b1565b809150509250929050565b600181811c9082168061150c57607f821691505b60208210810361152c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561154457600080fd5b8151610416816112b1565b60006020828403121561156157600080fd5b5051919050565b601f821115610b1157600081815260208120601f850160051c8101602086101561158f5750805b601f850160051c820191505b818110156115ae5782815560010161159b565b505050505050565b815167ffffffffffffffff8111156115d0576115d0611333565b6115e4816115de84546114f8565b84611568565b602080601f83116001811461161957600084156116015750858301515b600019600386901b1c1916600185901b1785556115ae565b600085815260208120601f198616915b8281101561164857888601518255948401946001909101908401611629565b50858210156116665787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b808201808211156103f157634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600060ff8316806116e457634e487b7160e01b600052601260045260246000fd5b8060ff8416069150509291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a264697066735822122084d23e1550078099de6531b233536edf99ca46f93a3a57c4386b4cb3cf655ab964736f6c63430008140033