77 txs
3.4k calls
constructor
constructor(address underlying_, address comptroller_, address ionicAdmin_, address interestRateModel_, string name_, string symbol_, uint256 reserveFactorMantissa_, uint256 adminFeeMantissa_)
functions
_listExtensions
viewfunction _listExtensions() view returns (address[])
accrualBlockNumber
viewfunction accrualBlockNumber() view returns (uint256)
adminFeeMantissa
viewfunction adminFeeMantissa() view returns (uint256)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
feeSeizeShareMantissa
viewfunction feeSeizeShareMantissa() view returns (uint256)
implementation
viewfunction implementation() view returns (address)
interestRateModel
viewfunction interestRateModel() view returns (address)
ionicAdmin
viewfunction ionicAdmin() view returns (address)
ionicFeeMantissa
viewfunction ionicFeeMantissa() view returns (uint256)
name
viewfunction name() view returns (string)
protocolSeizeShareMantissa
viewfunction protocolSeizeShareMantissa() view returns (uint256)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalAdminFees
viewfunction totalAdminFees() view returns (uint256)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalIonicFees
viewfunction totalIonicFees() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_registerExtension
nonpayablefunction _registerExtension(address extensionToAdd, address extensionToReplace)
_setImplementationSafe
nonpayablefunction _setImplementationSafe(address implementation_, bytes becomeImplementationData)
_upgrade
nonpayablefunction _upgrade()
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewAdminFee
event NewAdminFee(uint256 oldAdminFeeMantissa, uint256 newAdminFeeMantissa)
NewImplementation
event NewImplementation(address oldImplementation, address newImplementation)
NewIonicFee
event NewIonicFee(uint256 oldIonicFeeMantissa, uint256 newIonicFeeMantissa)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
FunctionAlreadyAdded
error FunctionAlreadyAdded(bytes4 _functionSelector, address _currentImpl)
FunctionNotFound
error FunctionNotFound(bytes4 _functionSelector)
creation bytecode
0x60806040523480156200001157600080fd5b506040516200204b3803806200204b8339810160408190526200003491620006b1565b336001600160a01b038716146200007b5760405162461bcd60e51b815260206004820152600660248201526510b0b236b4b760d11b60448201526064015b60405180910390fd5b6000886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000784565b600080546001600160a01b0319166001600160a01b038a8116919091179091556702c68af0bb14000060055560038054610100600160a81b0319166101008c84160217905543600955670de0b6b3a7640000600a55604080516310c8fc9560e11b8152905192935090881691632191f92a916004808201926020929091908290030181865afa1580156200017a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a09190620007b0565b620001d85760405162461bcd60e51b8152602060048201526007602482015266216e6f7449726d60c81b604482015260640162000072565b600480546001600160a01b0319166001600160a01b038816908117909155604080516000815260208101929092527fedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926910160405180910390a184516200024690600190602088019062000525565b5083516200025c90600290602087019062000525565b506003805460ff191660ff8316179055600754600654670de0b6b3a76400009190620002899086620007d4565b620002959190620007d4565b1115620002cf5760405162461bcd60e51b8152602060048201526007602482015266085c998e9cd95d60ca1b604482015260640162000072565b60088390556040805160008152602081018590527faaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460910160405180910390a16000198214156200031f5760065491505b60008060009054906101000a90046001600160a01b03166001600160a01b031663dd86fea16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a9190620007fb565b9050670de0b6b3a76400008184600854620003b69190620007d4565b620003c29190620007d4565b1115620004025760405162461bcd60e51b815260206004820152600d60248201526c0858591b5a5b9199594e9cd95d609a1b604482015260640162000072565b60068390556040805160008152602081018590527fcdd0b588250e1398549f79cfdb8217c186688822905d6715b0834ea1c865594a910160405180910390a160078190556040805160008152602081018390527fedec4b9c99c2cdb231e7fd036f861e0445b015916700f41b9835f984cb9be4cb910160405180910390a1506000805460ff60a01b1916600160a01b179055601380546001600160a01b038b166001600160a01b03199091168117909155604080516318160ddd60e01b815290516318160ddd916004808201926020929091908290030181865afa158015620004ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005159190620007fb565b5050505050505050505062000852565b828054620005339062000815565b90600052602060002090601f016020900481019282620005575760008555620005a2565b82601f106200057257805160ff1916838001178555620005a2565b82800160010185558215620005a2579182015b82811115620005a257825182559160200191906001019062000585565b50620005b0929150620005b4565b5090565b5b80821115620005b05760008155600101620005b5565b6001600160a01b0381168114620005e157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200060c57600080fd5b81516001600160401b0380821115620006295762000629620005e4565b604051601f8301601f19908116603f01168101908282118183101715620006545762000654620005e4565b816040528381526020925086838588010111156200067157600080fd5b600091505b8382101562000695578582018301518183018401529082019062000676565b83821115620006a75760008385830101525b9695505050505050565b600080600080600080600080610100898b031215620006cf57600080fd5b8851620006dc81620005cb565b60208a0151909850620006ef81620005cb565b60408a01519097506200070281620005cb565b60608a01519096506200071581620005cb565b60808a01519095506001600160401b03808211156200073357600080fd5b620007418c838d01620005fa565b955060a08b01519150808211156200075857600080fd5b50620007678b828c01620005fa565b60c08b015160e0909b0151999c989b509699959894979350505050565b6000602082840312156200079757600080fd5b815160ff81168114620007a957600080fd5b9392505050565b600060208284031215620007c357600080fd5b81518015158114620007a957600080fd5b60008219821115620007f657634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200080e57600080fd5b5051919050565b600181811c908216806200082a57607f821691505b602082108114156200084c57634e487b7160e01b600052602260045260246000fd5b50919050565b6117e980620008626000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806389cd9855116100c3578063ba49f54a1161007c578063ba49f54a146102f6578063be99f119146102fe578063c3bf11cd1461030d578063c91a424f14610316578063e207afe214610329578063f3fdb15a1461033c57610158565b806389cd9855146102b55780638d02d9a1146102ca5780638f840ddd146102d357806395d89b41146102dc5780639826394b146102e4578063aa5af0fd146102ed57610158565b80635fe3b567116101155780635fe3b5671461025557806361feacff1461026d5780636333d001146102765780636752e7021461028b5780636c540baf146102995780636f307dc3146102a257610158565b806306fdde03146101cf578063173b9904146101ed57806318160ddd14610204578063313ce5671461020d57806347bd37181461022c5780635c60da1b14610235575b600061016f6000356001600160e01b03191661034f565b90506001600160a01b0381166101ab57604051630a82dd7360e31b81526001600160e01b03196000351660048201526024015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156101ca573d6000f35b3d6000fd5b6101d761036f565b6040516101e491906112a9565b60405180910390f35b6101f660085481565b6040519081526020016101e4565b6101f6600f5481565b60035461021a9060ff1681565b60405160ff90911681526020016101e4565b6101f6600b5481565b61023d6103fd565b6040516001600160a01b0390911681526020016101e4565b60035461023d9061010090046001600160a01b031681565b6101f6600d5481565b61027e610453565b6040516101e491906112c3565b6101f6666379da05b6000081565b6101f660095481565b60135461023d906001600160a01b031681565b6102c86102c3366004611328565b61045d565b005b6101f660065481565b6101f6600c5481565b6101d76104b5565b6101f6600e5481565b6101f6600a5481565b6102c86104c2565b6101f667016345785d8a000081565b6101f660075481565b60005461023d906001600160a01b031681565b6102c8610337366004611361565b6106a7565b60045461023d906001600160a01b031681565b6000610369826000805160206117bd833981519152610729565b92915050565b6001805461037c906113e6565b80601f01602080910402602001604051908101604052809291908181526020018280546103a8906113e6565b80156103f55780601f106103ca576101008083540402835291602001916103f5565b820191906000526020600020905b8154815290600101906020018083116103d857829003601f168201915b505050505081565b60408051808201909152600e81526d64656c656761746554797065282960901b602090910152600061044e7f2c436e5bba88e403c36d7a2822cd2b39b360d5c6296839bbf72c5a05167fd3ff61034f565b905090565b606061044e6107cf565b6000546001600160a01b031633146104a75760405162461bcd60e51b815260206004820152600d60248201526c085d5b985d5d1a1bdc9a5e9959609a1b60448201526064016101a2565b6104b18282610841565b5050565b6002805461037c906113e6565b333014806104d357506104d3610862565b6105105760405162461bcd60e51b815260206004820152600e60248201526d10b9b2b6331037b91030b236b4b760911b60448201526064016101a2565b60408051600481526024810182526020810180516001600160e01b0316632c436e5b60e01b17905290516000918291309161054a91611421565b600060405180830381855afa9150503d8060008114610585576040519150601f19603f3d011682016040523d82523d6000602084013e61058a565b606091505b5091509150816105cf5760405162461bcd60e51b815260206004820152601060248201526f6e6f2064656c6567617465207479706560801b60448201526064016101a2565b6000818060200190518101906105e5919061143d565b60008054604051632aa1058760e21b815260ff84166004820152929350909182916001600160a01b03169063aa84161c90602401600060405180830381865afa158015610636573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261065e91908101906114a7565b91509150600061066c6103fd565b9050826001600160a01b0316816001600160a01b0316146106965761069183836109df565b61069f565b61069f81610ab7565b505050505050565b6106af610862565b6106e45760405162461bcd60e51b815260206004820152600660248201526510b0b236b4b760d11b60448201526064016101a2565b6107248383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109df92505050565b505050565b8054600090815b818110156107c457846001600160e01b03191684600001828154811061075857610758611551565b600091825260209091200154600160a01b900460e01b6001600160e01b03191614156107b25783600001818154811061079357610793611551565b6000918252602090912001546001600160a01b03169250610369915050565b806107bc8161157d565b915050610730565b506000949350505050565b60606000805160206117bd83398151915260010180548060200260200160405190810160405280929190818152602001828054801561083757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610819575b5050505050905090565b6001600160a01b038116156108595761085981610bbf565b6104b182610cef565b600080600360019054906101000a90046001600160a01b03169050806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df9190611598565b6001600160a01b0316336001600160a01b031614801561095c5750806001600160a01b0316630a755ec26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906115b5565b806109d957506000546001600160a01b0316331480156109d95750806001600160a01b031663cf6bfd2d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d991906115b5565b91505090565b60006109e96103fd565b90506109f483610ab7565b610a6e306356e6772860e01b84604051602401610a1191906112a9565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518060400160405280600c81526020016b08589958dbdb59481a5b5c1b60a21b815250610de7565b50604080516001600160a01b038084168252851660208201527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1505050565b600080546040516311a0e21760e01b81526001600160a01b038481166004830152909116906311a0e21790602401600060405180830381865afa158015610b02573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b2a91908101906115fb565b90506000610b366107cf565b905060005b8151811015610b7857610b66828281518110610b5957610b59611551565b6020026020010151610bbf565b80610b708161157d565b915050610b3b565b5060005b8251811015610bb957610ba7838281518110610b9a57610b9a611551565b6020026020010151610cef565b80610bb18161157d565b915050610b7c565b50505050565b6000805160206117bd833981519152610bd782610e83565b60005b600182015460ff8216101561072457826001600160a01b0316826001018260ff1681548110610c0b57610c0b611551565b6000918252602090912001546001600160a01b03161415610cdd57600180830180549091610c389161169a565b81548110610c4857610c48611551565b6000918252602090912001546001830180546001600160a01b039092169160ff8416908110610c7957610c79611551565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600101805480610cba57610cba6116b1565b600082815260209020810160001990810180546001600160a01b03191690550190555b80610ce7816116c7565b915050610bda565b6000805160206117bd83398151915260005b600182015460ff82161015610da757826001600160a01b0316826001018260ff1681548110610d3257610d32611551565b6000918252602090912001546001600160a01b03161415610d955760405162461bcd60e51b815260206004820152601760248201527f657874656e73696f6e20616c726561647920616464656400000000000000000060448201526064016101a2565b80610d9f816116c7565b915050610d01565b50610db182611042565b6001908101805491820181556000908152602090200180546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b031685604051610e049190611421565b6000604051808303816000865af19150503d8060008114610e41576040519150601f19603f3d011682016040523d82523d6000602084013e610e46565b606091505b509150915081610e7a57805115610e605780518082602001fd5b8360405162461bcd60e51b81526004016101a291906112a9565b95945050505050565b6000816001600160a01b03166389f8132e6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ec3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eeb91908101906116e7565b90506000805160206117bd83398151915260005b82518161ffff161015610bb9576000838261ffff1681518110610f2457610f24611551565b60200260200101519050610f388184610729565b6001600160a01b0316856001600160a01b031614610f5857610f58611784565b6000610f6482856111c9565b84549091508490610f779060019061169a565b81548110610f8757610f87611551565b90600052602060002001846000018261ffff1681548110610faa57610faa611551565b600091825260209091208254910180546001600160a01b039092166001600160a01b031983168117825592546001600160c01b0319909216909217600160a01b9182900463ffffffff16909102179055835484908061100b5761100b6116b1565b600082815260209020810160001990810180546001600160c01b03191690550190555081905061103a8161179a565b915050610eff565b6000816001600160a01b03166389f8132e6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611082573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110aa91908101906116e7565b6000805160206117bd83398151915280549192509060005b83518110156111c25760008482815181106110df576110df611551565b6020026020010151905060006110f58286610729565b90506001600160a01b0381161561113a57604051632c18df3360e01b81526001600160e01b0319831660048201526001600160a01b03821660248201526044016101a2565b604080518082019091526001600160a01b0380891682526001600160e01b0319841660208084019182528854600181018a5560008a815291909120935193018054915160e01c600160a01b026001600160c01b03199092169390921692909217919091179055836111aa8161179a565b945050505080806111ba9061157d565b9150506110c2565b5050505050565b8054600090815b8161ffff168161ffff16101561124557846001600160e01b031916846000018261ffff168154811061120457611204611551565b600091825260209091200154600160a01b900460e01b6001600160e01b03191614156112335791506103699050565b8061123d8161179a565b9150506111d0565b5061ffff949350505050565b60005b8381101561126c578181015183820152602001611254565b83811115610bb95750506000910152565b60008151808452611295816020860160208601611251565b601f01601f19169290920160200192915050565b6020815260006112bc602083018461127d565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156113045783516001600160a01b0316835292840192918401916001016112df565b50909695505050505050565b6001600160a01b038116811461132557600080fd5b50565b6000806040838503121561133b57600080fd5b823561134681611310565b9150602083013561135681611310565b809150509250929050565b60008060006040848603121561137657600080fd5b833561138181611310565b9250602084013567ffffffffffffffff8082111561139e57600080fd5b818601915086601f8301126113b257600080fd5b8135818111156113c157600080fd5b8760208285010111156113d357600080fd5b6020830194508093505050509250925092565b600181811c908216806113fa57607f821691505b6020821081141561141b57634e487b7160e01b600052602260045260246000fd5b50919050565b60008251611433818460208701611251565b9190910192915050565b60006020828403121561144f57600080fd5b815160ff811681146112bc57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561149f5761149f611460565b604052919050565b600080604083850312156114ba57600080fd5b82516114c581611310565b602084015190925067ffffffffffffffff808211156114e357600080fd5b818501915085601f8301126114f757600080fd5b81518181111561150957611509611460565b61151c601f8201601f1916602001611476565b915080825286602082850101111561153357600080fd5b611544816020840160208601611251565b5080925050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561159157611591611567565b5060010190565b6000602082840312156115aa57600080fd5b81516112bc81611310565b6000602082840312156115c757600080fd5b815180151581146112bc57600080fd5b600067ffffffffffffffff8211156115f1576115f1611460565b5060051b60200190565b6000602080838503121561160e57600080fd5b825167ffffffffffffffff81111561162557600080fd5b8301601f8101851361163657600080fd5b8051611649611644826115d7565b611476565b81815260059190911b8201830190838101908783111561166857600080fd5b928401925b8284101561168f57835161168081611310565b8252928401929084019061166d565b979650505050505050565b6000828210156116ac576116ac611567565b500390565b634e487b7160e01b600052603160045260246000fd5b600060ff821660ff8114156116de576116de611567565b60010192915050565b600060208083850312156116fa57600080fd5b825167ffffffffffffffff81111561171157600080fd5b8301601f8101851361172257600080fd5b8051611730611644826115d7565b81815260059190911b8201830190838101908783111561174f57600080fd5b928401925b8284101561168f5783516001600160e01b0319811681146117755760008081fd5b82529284019290840190611754565b634e487b7160e01b600052600160045260246000fd5b600061ffff808316818114156117b2576117b2611567565b600101939250505056fe234c809385eaba7c8e68b2a08341f3988117f4f9fae0fac38df439aa440b2615a164736f6c634300080a000a000000000000000000000000526728dbc96689597f85ae4cd716d4f7fccbae9d00000000000000000000000005c9c6417f246600f8f5f49fca9ee991bff73d130000000000000000000000009bad1f7685f33ad855ae81089dfe79040864e2f60000000000000000000000005f0369aa93f36ca6a8b5ed7aac47bf9e76086d0300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000019496f6e6963204d6574726f6e6f6d652053796e746820555344000000000000000000000000000000000000000000000000000000000000000000000000000008696f6e6d73555344000000000000000000000000000000000000000000000000