github.com/cwntr/go-defi@v0.0.0-20210629134751-07f9ec2f7e66/binding/compound/cToken/cToken.go (about) 1 // Code generated - DO NOT EDIT. 2 // This file is a generated binding and any manual changes will be lost. 3 4 package cToken 5 6 import ( 7 "math/big" 8 "strings" 9 10 ethereum "github.com/ethereum/go-ethereum" 11 "github.com/ethereum/go-ethereum/accounts/abi" 12 "github.com/ethereum/go-ethereum/accounts/abi/bind" 13 "github.com/ethereum/go-ethereum/common" 14 "github.com/ethereum/go-ethereum/core/types" 15 "github.com/ethereum/go-ethereum/event" 16 ) 17 18 // Reference imports to suppress errors if they are not otherwise used. 19 var ( 20 _ = big.NewInt 21 _ = strings.NewReader 22 _ = ethereum.NotFound 23 _ = bind.Bind 24 _ = common.Big1 25 _ = types.BloomLookup 26 _ = event.NewSubscription 27 ) 28 29 // CTokenABI is the input ABI used to generate the binding from. 30 const CTokenABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"underlying_\",\"type\":\"address\"},{\"internalType\":\"contractComptrollerInterface\",\"name\":\"comptroller_\",\"type\":\"address\"},{\"internalType\":\"contractInterestRateModel\",\"name\":\"interestRateModel_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialExchangeRateMantissa_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"addresspayable\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"becomeImplementationData\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"signature\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cashPrior\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"interestAccumulated\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalBorrows\",\"type\":\"uint256\"}],\"name\":\"AccrueInterest\",\"type\":\"event\",\"signature\":\"0x4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\",\"signature\":\"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"borrowAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"accountBorrows\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalBorrows\",\"type\":\"uint256\"}],\"name\":\"Borrow\",\"type\":\"event\",\"signature\":\"0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"error\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"info\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"detail\",\"type\":\"uint256\"}],\"name\":\"Failure\",\"type\":\"event\",\"signature\":\"0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"liquidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"repayAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"cTokenCollateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"seizeTokens\",\"type\":\"uint256\"}],\"name\":\"LiquidateBorrow\",\"type\":\"event\",\"signature\":\"0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintTokens\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\",\"signature\":\"0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\",\"signature\":\"0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractComptrollerInterface\",\"name\":\"oldComptroller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractComptrollerInterface\",\"name\":\"newComptroller\",\"type\":\"address\"}],\"name\":\"NewComptroller\",\"type\":\"event\",\"signature\":\"0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\",\"signature\":\"0xd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractInterestRateModel\",\"name\":\"oldInterestRateModel\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractInterestRateModel\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"NewMarketInterestRateModel\",\"type\":\"event\",\"signature\":\"0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\",\"signature\":\"0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldReserveFactorMantissa\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReserveFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"NewReserveFactor\",\"type\":\"event\",\"signature\":\"0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"redeemer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"redeemAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"redeemTokens\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\",\"signature\":\"0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"repayAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"accountBorrows\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalBorrows\",\"type\":\"uint256\"}],\"name\":\"RepayBorrow\",\"type\":\"event\",\"signature\":\"0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"benefactor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"addAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalReserves\",\"type\":\"uint256\"}],\"name\":\"ReservesAdded\",\"type\":\"event\",\"signature\":\"0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reduceAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalReserves\",\"type\":\"uint256\"}],\"name\":\"ReservesReduced\",\"type\":\"event\",\"signature\":\"0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\",\"signature\":\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[],\"name\":\"_acceptAdmin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xe9c714f2\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"addAmount\",\"type\":\"uint256\"}],\"name\":\"_addReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x3e941010\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reduceAmount\",\"type\":\"uint256\"}],\"name\":\"_reduceReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x601a0bf1\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractComptrollerInterface\",\"name\":\"newComptroller\",\"type\":\"address\"}],\"name\":\"_setComptroller\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x4576b5db\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowResign\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"becomeImplementationData\",\"type\":\"bytes\"}],\"name\":\"_setImplementation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x555bcc40\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractInterestRateModel\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"_setInterestRateModel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xf2b3abbd\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"_setPendingAdmin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xb71d1a0c\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newReserveFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"_setReserveFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xfca7820b\"},{\"constant\":true,\"inputs\":[],\"name\":\"accrualBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x6c540baf\"},{\"constant\":false,\"inputs\":[],\"name\":\"accrueInterest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xa6afed95\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xf851a440\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xdd62ed3e\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x095ea7b3\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x70a08231\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x3af9e669\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowAmount\",\"type\":\"uint256\"}],\"name\":\"borrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xc5ebeaec\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x17bfdfbc\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x95dd9193\"},{\"constant\":true,\"inputs\":[],\"name\":\"borrowIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xaa5af0fd\"},{\"constant\":true,\"inputs\":[],\"name\":\"borrowRatePerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xf8f9da28\"},{\"constant\":true,\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"contractComptrollerInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x5fe3b567\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x313ce567\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateToImplementation\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x0933c1ed\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateToViewImplementation\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x4487152f\"},{\"constant\":false,\"inputs\":[],\"name\":\"exchangeRateCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xbd6d894d\"},{\"constant\":true,\"inputs\":[],\"name\":\"exchangeRateStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x182df0f5\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xc37f68e2\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x3b1d21a2\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x5c60da1b\"},{\"constant\":true,\"inputs\":[],\"name\":\"interestRateModel\",\"outputs\":[{\"internalType\":\"contractInterestRateModel\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xf3fdb15a\"},{\"constant\":true,\"inputs\":[],\"name\":\"isCToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xfe9c44ae\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"repayAmount\",\"type\":\"uint256\"},{\"internalType\":\"contractCTokenInterface\",\"name\":\"cTokenCollateral\",\"type\":\"address\"}],\"name\":\"liquidateBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xf5e3c462\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mintAmount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xa0712d68\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x06fdde03\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x26782247\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"redeemTokens\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xdb006a75\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"redeemAmount\",\"type\":\"uint256\"}],\"name\":\"redeemUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x852a12e3\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"repayAmount\",\"type\":\"uint256\"}],\"name\":\"repayBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x0e752702\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"repayAmount\",\"type\":\"uint256\"}],\"name\":\"repayBorrowBehalf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x2608f818\"},{\"constant\":true,\"inputs\":[],\"name\":\"reserveFactorMantissa\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x173b9904\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"liquidator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"seizeTokens\",\"type\":\"uint256\"}],\"name\":\"seize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xb2a02ff1\"},{\"constant\":true,\"inputs\":[],\"name\":\"supplyRatePerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0xae9d70b0\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x95d89b41\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalBorrows\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x47bd3718\"},{\"constant\":false,\"inputs\":[],\"name\":\"totalBorrowsCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x73acee98\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x8f840ddd\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x18160ddd\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0xa9059cbb\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"signature\":\"0x23b872dd\"},{\"constant\":true,\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\",\"signature\":\"0x6f307dc3\"}]" 31 32 // CToken is an auto generated Go binding around an Ethereum contract. 33 type CToken struct { 34 CTokenCaller // Read-only binding to the contract 35 CTokenTransactor // Write-only binding to the contract 36 CTokenFilterer // Log filterer for contract events 37 } 38 39 // CTokenCaller is an auto generated read-only Go binding around an Ethereum contract. 40 type CTokenCaller struct { 41 contract *bind.BoundContract // Generic contract wrapper for the low level calls 42 } 43 44 // CTokenTransactor is an auto generated write-only Go binding around an Ethereum contract. 45 type CTokenTransactor struct { 46 contract *bind.BoundContract // Generic contract wrapper for the low level calls 47 } 48 49 // CTokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 50 type CTokenFilterer struct { 51 contract *bind.BoundContract // Generic contract wrapper for the low level calls 52 } 53 54 // CTokenSession is an auto generated Go binding around an Ethereum contract, 55 // with pre-set call and transact options. 56 type CTokenSession struct { 57 Contract *CToken // Generic contract binding to set the session for 58 CallOpts bind.CallOpts // Call options to use throughout this session 59 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 60 } 61 62 // CTokenCallerSession is an auto generated read-only Go binding around an Ethereum contract, 63 // with pre-set call options. 64 type CTokenCallerSession struct { 65 Contract *CTokenCaller // Generic contract caller binding to set the session for 66 CallOpts bind.CallOpts // Call options to use throughout this session 67 } 68 69 // CTokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 70 // with pre-set transact options. 71 type CTokenTransactorSession struct { 72 Contract *CTokenTransactor // Generic contract transactor binding to set the session for 73 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 74 } 75 76 // CTokenRaw is an auto generated low-level Go binding around an Ethereum contract. 77 type CTokenRaw struct { 78 Contract *CToken // Generic contract binding to access the raw methods on 79 } 80 81 // CTokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 82 type CTokenCallerRaw struct { 83 Contract *CTokenCaller // Generic read-only contract binding to access the raw methods on 84 } 85 86 // CTokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 87 type CTokenTransactorRaw struct { 88 Contract *CTokenTransactor // Generic write-only contract binding to access the raw methods on 89 } 90 91 // NewCToken creates a new instance of CToken, bound to a specific deployed contract. 92 func NewCToken(address common.Address, backend bind.ContractBackend) (*CToken, error) { 93 contract, err := bindCToken(address, backend, backend, backend) 94 if err != nil { 95 return nil, err 96 } 97 return &CToken{CTokenCaller: CTokenCaller{contract: contract}, CTokenTransactor: CTokenTransactor{contract: contract}, CTokenFilterer: CTokenFilterer{contract: contract}}, nil 98 } 99 100 // NewCTokenCaller creates a new read-only instance of CToken, bound to a specific deployed contract. 101 func NewCTokenCaller(address common.Address, caller bind.ContractCaller) (*CTokenCaller, error) { 102 contract, err := bindCToken(address, caller, nil, nil) 103 if err != nil { 104 return nil, err 105 } 106 return &CTokenCaller{contract: contract}, nil 107 } 108 109 // NewCTokenTransactor creates a new write-only instance of CToken, bound to a specific deployed contract. 110 func NewCTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*CTokenTransactor, error) { 111 contract, err := bindCToken(address, nil, transactor, nil) 112 if err != nil { 113 return nil, err 114 } 115 return &CTokenTransactor{contract: contract}, nil 116 } 117 118 // NewCTokenFilterer creates a new log filterer instance of CToken, bound to a specific deployed contract. 119 func NewCTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*CTokenFilterer, error) { 120 contract, err := bindCToken(address, nil, nil, filterer) 121 if err != nil { 122 return nil, err 123 } 124 return &CTokenFilterer{contract: contract}, nil 125 } 126 127 // bindCToken binds a generic wrapper to an already deployed contract. 128 func bindCToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 129 parsed, err := abi.JSON(strings.NewReader(CTokenABI)) 130 if err != nil { 131 return nil, err 132 } 133 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 134 } 135 136 // Call invokes the (constant) contract method with params as input values and 137 // sets the output to result. The result type might be a single field for simple 138 // returns, a slice of interfaces for anonymous returns and a struct for named 139 // returns. 140 func (_CToken *CTokenRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 141 return _CToken.Contract.CTokenCaller.contract.Call(opts, result, method, params...) 142 } 143 144 // Transfer initiates a plain transaction to move funds to the contract, calling 145 // its default method if one is available. 146 func (_CToken *CTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 147 return _CToken.Contract.CTokenTransactor.contract.Transfer(opts) 148 } 149 150 // Transact invokes the (paid) contract method with params as input values. 151 func (_CToken *CTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 152 return _CToken.Contract.CTokenTransactor.contract.Transact(opts, method, params...) 153 } 154 155 // Call invokes the (constant) contract method with params as input values and 156 // sets the output to result. The result type might be a single field for simple 157 // returns, a slice of interfaces for anonymous returns and a struct for named 158 // returns. 159 func (_CToken *CTokenCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 160 return _CToken.Contract.contract.Call(opts, result, method, params...) 161 } 162 163 // Transfer initiates a plain transaction to move funds to the contract, calling 164 // its default method if one is available. 165 func (_CToken *CTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 166 return _CToken.Contract.contract.Transfer(opts) 167 } 168 169 // Transact invokes the (paid) contract method with params as input values. 170 func (_CToken *CTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 171 return _CToken.Contract.contract.Transact(opts, method, params...) 172 } 173 174 // AccrualBlockNumber is a free data retrieval call binding the contract method 0x6c540baf. 175 // 176 // Solidity: function accrualBlockNumber() view returns(uint256) 177 func (_CToken *CTokenCaller) AccrualBlockNumber(opts *bind.CallOpts) (*big.Int, error) { 178 var out []interface{} 179 err := _CToken.contract.Call(opts, &out, "accrualBlockNumber") 180 181 if err != nil { 182 return *new(*big.Int), err 183 } 184 185 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 186 187 return out0, err 188 189 } 190 191 // AccrualBlockNumber is a free data retrieval call binding the contract method 0x6c540baf. 192 // 193 // Solidity: function accrualBlockNumber() view returns(uint256) 194 func (_CToken *CTokenSession) AccrualBlockNumber() (*big.Int, error) { 195 return _CToken.Contract.AccrualBlockNumber(&_CToken.CallOpts) 196 } 197 198 // AccrualBlockNumber is a free data retrieval call binding the contract method 0x6c540baf. 199 // 200 // Solidity: function accrualBlockNumber() view returns(uint256) 201 func (_CToken *CTokenCallerSession) AccrualBlockNumber() (*big.Int, error) { 202 return _CToken.Contract.AccrualBlockNumber(&_CToken.CallOpts) 203 } 204 205 // Admin is a free data retrieval call binding the contract method 0xf851a440. 206 // 207 // Solidity: function admin() view returns(address) 208 func (_CToken *CTokenCaller) Admin(opts *bind.CallOpts) (common.Address, error) { 209 var out []interface{} 210 err := _CToken.contract.Call(opts, &out, "admin") 211 212 if err != nil { 213 return *new(common.Address), err 214 } 215 216 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 217 218 return out0, err 219 220 } 221 222 // Admin is a free data retrieval call binding the contract method 0xf851a440. 223 // 224 // Solidity: function admin() view returns(address) 225 func (_CToken *CTokenSession) Admin() (common.Address, error) { 226 return _CToken.Contract.Admin(&_CToken.CallOpts) 227 } 228 229 // Admin is a free data retrieval call binding the contract method 0xf851a440. 230 // 231 // Solidity: function admin() view returns(address) 232 func (_CToken *CTokenCallerSession) Admin() (common.Address, error) { 233 return _CToken.Contract.Admin(&_CToken.CallOpts) 234 } 235 236 // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. 237 // 238 // Solidity: function allowance(address owner, address spender) view returns(uint256) 239 func (_CToken *CTokenCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { 240 var out []interface{} 241 err := _CToken.contract.Call(opts, &out, "allowance", owner, spender) 242 243 if err != nil { 244 return *new(*big.Int), err 245 } 246 247 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 248 249 return out0, err 250 251 } 252 253 // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. 254 // 255 // Solidity: function allowance(address owner, address spender) view returns(uint256) 256 func (_CToken *CTokenSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { 257 return _CToken.Contract.Allowance(&_CToken.CallOpts, owner, spender) 258 } 259 260 // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. 261 // 262 // Solidity: function allowance(address owner, address spender) view returns(uint256) 263 func (_CToken *CTokenCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { 264 return _CToken.Contract.Allowance(&_CToken.CallOpts, owner, spender) 265 } 266 267 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 268 // 269 // Solidity: function balanceOf(address owner) view returns(uint256) 270 func (_CToken *CTokenCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) { 271 var out []interface{} 272 err := _CToken.contract.Call(opts, &out, "balanceOf", owner) 273 274 if err != nil { 275 return *new(*big.Int), err 276 } 277 278 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 279 280 return out0, err 281 282 } 283 284 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 285 // 286 // Solidity: function balanceOf(address owner) view returns(uint256) 287 func (_CToken *CTokenSession) BalanceOf(owner common.Address) (*big.Int, error) { 288 return _CToken.Contract.BalanceOf(&_CToken.CallOpts, owner) 289 } 290 291 // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. 292 // 293 // Solidity: function balanceOf(address owner) view returns(uint256) 294 func (_CToken *CTokenCallerSession) BalanceOf(owner common.Address) (*big.Int, error) { 295 return _CToken.Contract.BalanceOf(&_CToken.CallOpts, owner) 296 } 297 298 // BorrowBalanceStored is a free data retrieval call binding the contract method 0x95dd9193. 299 // 300 // Solidity: function borrowBalanceStored(address account) view returns(uint256) 301 func (_CToken *CTokenCaller) BorrowBalanceStored(opts *bind.CallOpts, account common.Address) (*big.Int, error) { 302 var out []interface{} 303 err := _CToken.contract.Call(opts, &out, "borrowBalanceStored", account) 304 305 if err != nil { 306 return *new(*big.Int), err 307 } 308 309 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 310 311 return out0, err 312 313 } 314 315 // BorrowBalanceStored is a free data retrieval call binding the contract method 0x95dd9193. 316 // 317 // Solidity: function borrowBalanceStored(address account) view returns(uint256) 318 func (_CToken *CTokenSession) BorrowBalanceStored(account common.Address) (*big.Int, error) { 319 return _CToken.Contract.BorrowBalanceStored(&_CToken.CallOpts, account) 320 } 321 322 // BorrowBalanceStored is a free data retrieval call binding the contract method 0x95dd9193. 323 // 324 // Solidity: function borrowBalanceStored(address account) view returns(uint256) 325 func (_CToken *CTokenCallerSession) BorrowBalanceStored(account common.Address) (*big.Int, error) { 326 return _CToken.Contract.BorrowBalanceStored(&_CToken.CallOpts, account) 327 } 328 329 // BorrowIndex is a free data retrieval call binding the contract method 0xaa5af0fd. 330 // 331 // Solidity: function borrowIndex() view returns(uint256) 332 func (_CToken *CTokenCaller) BorrowIndex(opts *bind.CallOpts) (*big.Int, error) { 333 var out []interface{} 334 err := _CToken.contract.Call(opts, &out, "borrowIndex") 335 336 if err != nil { 337 return *new(*big.Int), err 338 } 339 340 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 341 342 return out0, err 343 344 } 345 346 // BorrowIndex is a free data retrieval call binding the contract method 0xaa5af0fd. 347 // 348 // Solidity: function borrowIndex() view returns(uint256) 349 func (_CToken *CTokenSession) BorrowIndex() (*big.Int, error) { 350 return _CToken.Contract.BorrowIndex(&_CToken.CallOpts) 351 } 352 353 // BorrowIndex is a free data retrieval call binding the contract method 0xaa5af0fd. 354 // 355 // Solidity: function borrowIndex() view returns(uint256) 356 func (_CToken *CTokenCallerSession) BorrowIndex() (*big.Int, error) { 357 return _CToken.Contract.BorrowIndex(&_CToken.CallOpts) 358 } 359 360 // BorrowRatePerBlock is a free data retrieval call binding the contract method 0xf8f9da28. 361 // 362 // Solidity: function borrowRatePerBlock() view returns(uint256) 363 func (_CToken *CTokenCaller) BorrowRatePerBlock(opts *bind.CallOpts) (*big.Int, error) { 364 var out []interface{} 365 err := _CToken.contract.Call(opts, &out, "borrowRatePerBlock") 366 367 if err != nil { 368 return *new(*big.Int), err 369 } 370 371 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 372 373 return out0, err 374 375 } 376 377 // BorrowRatePerBlock is a free data retrieval call binding the contract method 0xf8f9da28. 378 // 379 // Solidity: function borrowRatePerBlock() view returns(uint256) 380 func (_CToken *CTokenSession) BorrowRatePerBlock() (*big.Int, error) { 381 return _CToken.Contract.BorrowRatePerBlock(&_CToken.CallOpts) 382 } 383 384 // BorrowRatePerBlock is a free data retrieval call binding the contract method 0xf8f9da28. 385 // 386 // Solidity: function borrowRatePerBlock() view returns(uint256) 387 func (_CToken *CTokenCallerSession) BorrowRatePerBlock() (*big.Int, error) { 388 return _CToken.Contract.BorrowRatePerBlock(&_CToken.CallOpts) 389 } 390 391 // Comptroller is a free data retrieval call binding the contract method 0x5fe3b567. 392 // 393 // Solidity: function comptroller() view returns(address) 394 func (_CToken *CTokenCaller) Comptroller(opts *bind.CallOpts) (common.Address, error) { 395 var out []interface{} 396 err := _CToken.contract.Call(opts, &out, "comptroller") 397 398 if err != nil { 399 return *new(common.Address), err 400 } 401 402 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 403 404 return out0, err 405 406 } 407 408 // Comptroller is a free data retrieval call binding the contract method 0x5fe3b567. 409 // 410 // Solidity: function comptroller() view returns(address) 411 func (_CToken *CTokenSession) Comptroller() (common.Address, error) { 412 return _CToken.Contract.Comptroller(&_CToken.CallOpts) 413 } 414 415 // Comptroller is a free data retrieval call binding the contract method 0x5fe3b567. 416 // 417 // Solidity: function comptroller() view returns(address) 418 func (_CToken *CTokenCallerSession) Comptroller() (common.Address, error) { 419 return _CToken.Contract.Comptroller(&_CToken.CallOpts) 420 } 421 422 // Decimals is a free data retrieval call binding the contract method 0x313ce567. 423 // 424 // Solidity: function decimals() view returns(uint8) 425 func (_CToken *CTokenCaller) Decimals(opts *bind.CallOpts) (uint8, error) { 426 var out []interface{} 427 err := _CToken.contract.Call(opts, &out, "decimals") 428 429 if err != nil { 430 return *new(uint8), err 431 } 432 433 out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) 434 435 return out0, err 436 437 } 438 439 // Decimals is a free data retrieval call binding the contract method 0x313ce567. 440 // 441 // Solidity: function decimals() view returns(uint8) 442 func (_CToken *CTokenSession) Decimals() (uint8, error) { 443 return _CToken.Contract.Decimals(&_CToken.CallOpts) 444 } 445 446 // Decimals is a free data retrieval call binding the contract method 0x313ce567. 447 // 448 // Solidity: function decimals() view returns(uint8) 449 func (_CToken *CTokenCallerSession) Decimals() (uint8, error) { 450 return _CToken.Contract.Decimals(&_CToken.CallOpts) 451 } 452 453 // DelegateToViewImplementation is a free data retrieval call binding the contract method 0x4487152f. 454 // 455 // Solidity: function delegateToViewImplementation(bytes data) view returns(bytes) 456 func (_CToken *CTokenCaller) DelegateToViewImplementation(opts *bind.CallOpts, data []byte) ([]byte, error) { 457 var out []interface{} 458 err := _CToken.contract.Call(opts, &out, "delegateToViewImplementation", data) 459 460 if err != nil { 461 return *new([]byte), err 462 } 463 464 out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) 465 466 return out0, err 467 468 } 469 470 // DelegateToViewImplementation is a free data retrieval call binding the contract method 0x4487152f. 471 // 472 // Solidity: function delegateToViewImplementation(bytes data) view returns(bytes) 473 func (_CToken *CTokenSession) DelegateToViewImplementation(data []byte) ([]byte, error) { 474 return _CToken.Contract.DelegateToViewImplementation(&_CToken.CallOpts, data) 475 } 476 477 // DelegateToViewImplementation is a free data retrieval call binding the contract method 0x4487152f. 478 // 479 // Solidity: function delegateToViewImplementation(bytes data) view returns(bytes) 480 func (_CToken *CTokenCallerSession) DelegateToViewImplementation(data []byte) ([]byte, error) { 481 return _CToken.Contract.DelegateToViewImplementation(&_CToken.CallOpts, data) 482 } 483 484 // ExchangeRateStored is a free data retrieval call binding the contract method 0x182df0f5. 485 // 486 // Solidity: function exchangeRateStored() view returns(uint256) 487 func (_CToken *CTokenCaller) ExchangeRateStored(opts *bind.CallOpts) (*big.Int, error) { 488 var out []interface{} 489 err := _CToken.contract.Call(opts, &out, "exchangeRateStored") 490 491 if err != nil { 492 return *new(*big.Int), err 493 } 494 495 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 496 497 return out0, err 498 499 } 500 501 // ExchangeRateStored is a free data retrieval call binding the contract method 0x182df0f5. 502 // 503 // Solidity: function exchangeRateStored() view returns(uint256) 504 func (_CToken *CTokenSession) ExchangeRateStored() (*big.Int, error) { 505 return _CToken.Contract.ExchangeRateStored(&_CToken.CallOpts) 506 } 507 508 // ExchangeRateStored is a free data retrieval call binding the contract method 0x182df0f5. 509 // 510 // Solidity: function exchangeRateStored() view returns(uint256) 511 func (_CToken *CTokenCallerSession) ExchangeRateStored() (*big.Int, error) { 512 return _CToken.Contract.ExchangeRateStored(&_CToken.CallOpts) 513 } 514 515 // GetAccountSnapshot is a free data retrieval call binding the contract method 0xc37f68e2. 516 // 517 // Solidity: function getAccountSnapshot(address account) view returns(uint256, uint256, uint256, uint256) 518 func (_CToken *CTokenCaller) GetAccountSnapshot(opts *bind.CallOpts, account common.Address) (*big.Int, *big.Int, *big.Int, *big.Int, error) { 519 var out []interface{} 520 err := _CToken.contract.Call(opts, &out, "getAccountSnapshot", account) 521 522 if err != nil { 523 return *new(*big.Int), *new(*big.Int), *new(*big.Int), *new(*big.Int), err 524 } 525 526 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 527 out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 528 out2 := *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 529 out3 := *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) 530 531 return out0, out1, out2, out3, err 532 533 } 534 535 // GetAccountSnapshot is a free data retrieval call binding the contract method 0xc37f68e2. 536 // 537 // Solidity: function getAccountSnapshot(address account) view returns(uint256, uint256, uint256, uint256) 538 func (_CToken *CTokenSession) GetAccountSnapshot(account common.Address) (*big.Int, *big.Int, *big.Int, *big.Int, error) { 539 return _CToken.Contract.GetAccountSnapshot(&_CToken.CallOpts, account) 540 } 541 542 // GetAccountSnapshot is a free data retrieval call binding the contract method 0xc37f68e2. 543 // 544 // Solidity: function getAccountSnapshot(address account) view returns(uint256, uint256, uint256, uint256) 545 func (_CToken *CTokenCallerSession) GetAccountSnapshot(account common.Address) (*big.Int, *big.Int, *big.Int, *big.Int, error) { 546 return _CToken.Contract.GetAccountSnapshot(&_CToken.CallOpts, account) 547 } 548 549 // GetCash is a free data retrieval call binding the contract method 0x3b1d21a2. 550 // 551 // Solidity: function getCash() view returns(uint256) 552 func (_CToken *CTokenCaller) GetCash(opts *bind.CallOpts) (*big.Int, error) { 553 var out []interface{} 554 err := _CToken.contract.Call(opts, &out, "getCash") 555 556 if err != nil { 557 return *new(*big.Int), err 558 } 559 560 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 561 562 return out0, err 563 564 } 565 566 // GetCash is a free data retrieval call binding the contract method 0x3b1d21a2. 567 // 568 // Solidity: function getCash() view returns(uint256) 569 func (_CToken *CTokenSession) GetCash() (*big.Int, error) { 570 return _CToken.Contract.GetCash(&_CToken.CallOpts) 571 } 572 573 // GetCash is a free data retrieval call binding the contract method 0x3b1d21a2. 574 // 575 // Solidity: function getCash() view returns(uint256) 576 func (_CToken *CTokenCallerSession) GetCash() (*big.Int, error) { 577 return _CToken.Contract.GetCash(&_CToken.CallOpts) 578 } 579 580 // Implementation is a free data retrieval call binding the contract method 0x5c60da1b. 581 // 582 // Solidity: function implementation() view returns(address) 583 func (_CToken *CTokenCaller) Implementation(opts *bind.CallOpts) (common.Address, error) { 584 var out []interface{} 585 err := _CToken.contract.Call(opts, &out, "implementation") 586 587 if err != nil { 588 return *new(common.Address), err 589 } 590 591 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 592 593 return out0, err 594 595 } 596 597 // Implementation is a free data retrieval call binding the contract method 0x5c60da1b. 598 // 599 // Solidity: function implementation() view returns(address) 600 func (_CToken *CTokenSession) Implementation() (common.Address, error) { 601 return _CToken.Contract.Implementation(&_CToken.CallOpts) 602 } 603 604 // Implementation is a free data retrieval call binding the contract method 0x5c60da1b. 605 // 606 // Solidity: function implementation() view returns(address) 607 func (_CToken *CTokenCallerSession) Implementation() (common.Address, error) { 608 return _CToken.Contract.Implementation(&_CToken.CallOpts) 609 } 610 611 // InterestRateModel is a free data retrieval call binding the contract method 0xf3fdb15a. 612 // 613 // Solidity: function interestRateModel() view returns(address) 614 func (_CToken *CTokenCaller) InterestRateModel(opts *bind.CallOpts) (common.Address, error) { 615 var out []interface{} 616 err := _CToken.contract.Call(opts, &out, "interestRateModel") 617 618 if err != nil { 619 return *new(common.Address), err 620 } 621 622 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 623 624 return out0, err 625 626 } 627 628 // InterestRateModel is a free data retrieval call binding the contract method 0xf3fdb15a. 629 // 630 // Solidity: function interestRateModel() view returns(address) 631 func (_CToken *CTokenSession) InterestRateModel() (common.Address, error) { 632 return _CToken.Contract.InterestRateModel(&_CToken.CallOpts) 633 } 634 635 // InterestRateModel is a free data retrieval call binding the contract method 0xf3fdb15a. 636 // 637 // Solidity: function interestRateModel() view returns(address) 638 func (_CToken *CTokenCallerSession) InterestRateModel() (common.Address, error) { 639 return _CToken.Contract.InterestRateModel(&_CToken.CallOpts) 640 } 641 642 // IsCToken is a free data retrieval call binding the contract method 0xfe9c44ae. 643 // 644 // Solidity: function isCToken() view returns(bool) 645 func (_CToken *CTokenCaller) IsCToken(opts *bind.CallOpts) (bool, error) { 646 var out []interface{} 647 err := _CToken.contract.Call(opts, &out, "isCToken") 648 649 if err != nil { 650 return *new(bool), err 651 } 652 653 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 654 655 return out0, err 656 657 } 658 659 // IsCToken is a free data retrieval call binding the contract method 0xfe9c44ae. 660 // 661 // Solidity: function isCToken() view returns(bool) 662 func (_CToken *CTokenSession) IsCToken() (bool, error) { 663 return _CToken.Contract.IsCToken(&_CToken.CallOpts) 664 } 665 666 // IsCToken is a free data retrieval call binding the contract method 0xfe9c44ae. 667 // 668 // Solidity: function isCToken() view returns(bool) 669 func (_CToken *CTokenCallerSession) IsCToken() (bool, error) { 670 return _CToken.Contract.IsCToken(&_CToken.CallOpts) 671 } 672 673 // Name is a free data retrieval call binding the contract method 0x06fdde03. 674 // 675 // Solidity: function name() view returns(string) 676 func (_CToken *CTokenCaller) Name(opts *bind.CallOpts) (string, error) { 677 var out []interface{} 678 err := _CToken.contract.Call(opts, &out, "name") 679 680 if err != nil { 681 return *new(string), err 682 } 683 684 out0 := *abi.ConvertType(out[0], new(string)).(*string) 685 686 return out0, err 687 688 } 689 690 // Name is a free data retrieval call binding the contract method 0x06fdde03. 691 // 692 // Solidity: function name() view returns(string) 693 func (_CToken *CTokenSession) Name() (string, error) { 694 return _CToken.Contract.Name(&_CToken.CallOpts) 695 } 696 697 // Name is a free data retrieval call binding the contract method 0x06fdde03. 698 // 699 // Solidity: function name() view returns(string) 700 func (_CToken *CTokenCallerSession) Name() (string, error) { 701 return _CToken.Contract.Name(&_CToken.CallOpts) 702 } 703 704 // PendingAdmin is a free data retrieval call binding the contract method 0x26782247. 705 // 706 // Solidity: function pendingAdmin() view returns(address) 707 func (_CToken *CTokenCaller) PendingAdmin(opts *bind.CallOpts) (common.Address, error) { 708 var out []interface{} 709 err := _CToken.contract.Call(opts, &out, "pendingAdmin") 710 711 if err != nil { 712 return *new(common.Address), err 713 } 714 715 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 716 717 return out0, err 718 719 } 720 721 // PendingAdmin is a free data retrieval call binding the contract method 0x26782247. 722 // 723 // Solidity: function pendingAdmin() view returns(address) 724 func (_CToken *CTokenSession) PendingAdmin() (common.Address, error) { 725 return _CToken.Contract.PendingAdmin(&_CToken.CallOpts) 726 } 727 728 // PendingAdmin is a free data retrieval call binding the contract method 0x26782247. 729 // 730 // Solidity: function pendingAdmin() view returns(address) 731 func (_CToken *CTokenCallerSession) PendingAdmin() (common.Address, error) { 732 return _CToken.Contract.PendingAdmin(&_CToken.CallOpts) 733 } 734 735 // ReserveFactorMantissa is a free data retrieval call binding the contract method 0x173b9904. 736 // 737 // Solidity: function reserveFactorMantissa() view returns(uint256) 738 func (_CToken *CTokenCaller) ReserveFactorMantissa(opts *bind.CallOpts) (*big.Int, error) { 739 var out []interface{} 740 err := _CToken.contract.Call(opts, &out, "reserveFactorMantissa") 741 742 if err != nil { 743 return *new(*big.Int), err 744 } 745 746 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 747 748 return out0, err 749 750 } 751 752 // ReserveFactorMantissa is a free data retrieval call binding the contract method 0x173b9904. 753 // 754 // Solidity: function reserveFactorMantissa() view returns(uint256) 755 func (_CToken *CTokenSession) ReserveFactorMantissa() (*big.Int, error) { 756 return _CToken.Contract.ReserveFactorMantissa(&_CToken.CallOpts) 757 } 758 759 // ReserveFactorMantissa is a free data retrieval call binding the contract method 0x173b9904. 760 // 761 // Solidity: function reserveFactorMantissa() view returns(uint256) 762 func (_CToken *CTokenCallerSession) ReserveFactorMantissa() (*big.Int, error) { 763 return _CToken.Contract.ReserveFactorMantissa(&_CToken.CallOpts) 764 } 765 766 // SupplyRatePerBlock is a free data retrieval call binding the contract method 0xae9d70b0. 767 // 768 // Solidity: function supplyRatePerBlock() view returns(uint256) 769 func (_CToken *CTokenCaller) SupplyRatePerBlock(opts *bind.CallOpts) (*big.Int, error) { 770 var out []interface{} 771 err := _CToken.contract.Call(opts, &out, "supplyRatePerBlock") 772 773 if err != nil { 774 return *new(*big.Int), err 775 } 776 777 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 778 779 return out0, err 780 781 } 782 783 // SupplyRatePerBlock is a free data retrieval call binding the contract method 0xae9d70b0. 784 // 785 // Solidity: function supplyRatePerBlock() view returns(uint256) 786 func (_CToken *CTokenSession) SupplyRatePerBlock() (*big.Int, error) { 787 return _CToken.Contract.SupplyRatePerBlock(&_CToken.CallOpts) 788 } 789 790 // SupplyRatePerBlock is a free data retrieval call binding the contract method 0xae9d70b0. 791 // 792 // Solidity: function supplyRatePerBlock() view returns(uint256) 793 func (_CToken *CTokenCallerSession) SupplyRatePerBlock() (*big.Int, error) { 794 return _CToken.Contract.SupplyRatePerBlock(&_CToken.CallOpts) 795 } 796 797 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 798 // 799 // Solidity: function symbol() view returns(string) 800 func (_CToken *CTokenCaller) Symbol(opts *bind.CallOpts) (string, error) { 801 var out []interface{} 802 err := _CToken.contract.Call(opts, &out, "symbol") 803 804 if err != nil { 805 return *new(string), err 806 } 807 808 out0 := *abi.ConvertType(out[0], new(string)).(*string) 809 810 return out0, err 811 812 } 813 814 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 815 // 816 // Solidity: function symbol() view returns(string) 817 func (_CToken *CTokenSession) Symbol() (string, error) { 818 return _CToken.Contract.Symbol(&_CToken.CallOpts) 819 } 820 821 // Symbol is a free data retrieval call binding the contract method 0x95d89b41. 822 // 823 // Solidity: function symbol() view returns(string) 824 func (_CToken *CTokenCallerSession) Symbol() (string, error) { 825 return _CToken.Contract.Symbol(&_CToken.CallOpts) 826 } 827 828 // TotalBorrows is a free data retrieval call binding the contract method 0x47bd3718. 829 // 830 // Solidity: function totalBorrows() view returns(uint256) 831 func (_CToken *CTokenCaller) TotalBorrows(opts *bind.CallOpts) (*big.Int, error) { 832 var out []interface{} 833 err := _CToken.contract.Call(opts, &out, "totalBorrows") 834 835 if err != nil { 836 return *new(*big.Int), err 837 } 838 839 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 840 841 return out0, err 842 843 } 844 845 // TotalBorrows is a free data retrieval call binding the contract method 0x47bd3718. 846 // 847 // Solidity: function totalBorrows() view returns(uint256) 848 func (_CToken *CTokenSession) TotalBorrows() (*big.Int, error) { 849 return _CToken.Contract.TotalBorrows(&_CToken.CallOpts) 850 } 851 852 // TotalBorrows is a free data retrieval call binding the contract method 0x47bd3718. 853 // 854 // Solidity: function totalBorrows() view returns(uint256) 855 func (_CToken *CTokenCallerSession) TotalBorrows() (*big.Int, error) { 856 return _CToken.Contract.TotalBorrows(&_CToken.CallOpts) 857 } 858 859 // TotalReserves is a free data retrieval call binding the contract method 0x8f840ddd. 860 // 861 // Solidity: function totalReserves() view returns(uint256) 862 func (_CToken *CTokenCaller) TotalReserves(opts *bind.CallOpts) (*big.Int, error) { 863 var out []interface{} 864 err := _CToken.contract.Call(opts, &out, "totalReserves") 865 866 if err != nil { 867 return *new(*big.Int), err 868 } 869 870 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 871 872 return out0, err 873 874 } 875 876 // TotalReserves is a free data retrieval call binding the contract method 0x8f840ddd. 877 // 878 // Solidity: function totalReserves() view returns(uint256) 879 func (_CToken *CTokenSession) TotalReserves() (*big.Int, error) { 880 return _CToken.Contract.TotalReserves(&_CToken.CallOpts) 881 } 882 883 // TotalReserves is a free data retrieval call binding the contract method 0x8f840ddd. 884 // 885 // Solidity: function totalReserves() view returns(uint256) 886 func (_CToken *CTokenCallerSession) TotalReserves() (*big.Int, error) { 887 return _CToken.Contract.TotalReserves(&_CToken.CallOpts) 888 } 889 890 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 891 // 892 // Solidity: function totalSupply() view returns(uint256) 893 func (_CToken *CTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 894 var out []interface{} 895 err := _CToken.contract.Call(opts, &out, "totalSupply") 896 897 if err != nil { 898 return *new(*big.Int), err 899 } 900 901 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 902 903 return out0, err 904 905 } 906 907 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 908 // 909 // Solidity: function totalSupply() view returns(uint256) 910 func (_CToken *CTokenSession) TotalSupply() (*big.Int, error) { 911 return _CToken.Contract.TotalSupply(&_CToken.CallOpts) 912 } 913 914 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 915 // 916 // Solidity: function totalSupply() view returns(uint256) 917 func (_CToken *CTokenCallerSession) TotalSupply() (*big.Int, error) { 918 return _CToken.Contract.TotalSupply(&_CToken.CallOpts) 919 } 920 921 // Underlying is a free data retrieval call binding the contract method 0x6f307dc3. 922 // 923 // Solidity: function underlying() view returns(address) 924 func (_CToken *CTokenCaller) Underlying(opts *bind.CallOpts) (common.Address, error) { 925 var out []interface{} 926 err := _CToken.contract.Call(opts, &out, "underlying") 927 928 if err != nil { 929 return *new(common.Address), err 930 } 931 932 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 933 934 return out0, err 935 936 } 937 938 // Underlying is a free data retrieval call binding the contract method 0x6f307dc3. 939 // 940 // Solidity: function underlying() view returns(address) 941 func (_CToken *CTokenSession) Underlying() (common.Address, error) { 942 return _CToken.Contract.Underlying(&_CToken.CallOpts) 943 } 944 945 // Underlying is a free data retrieval call binding the contract method 0x6f307dc3. 946 // 947 // Solidity: function underlying() view returns(address) 948 func (_CToken *CTokenCallerSession) Underlying() (common.Address, error) { 949 return _CToken.Contract.Underlying(&_CToken.CallOpts) 950 } 951 952 // AcceptAdmin is a paid mutator transaction binding the contract method 0xe9c714f2. 953 // 954 // Solidity: function _acceptAdmin() returns(uint256) 955 func (_CToken *CTokenTransactor) AcceptAdmin(opts *bind.TransactOpts) (*types.Transaction, error) { 956 return _CToken.contract.Transact(opts, "_acceptAdmin") 957 } 958 959 // AcceptAdmin is a paid mutator transaction binding the contract method 0xe9c714f2. 960 // 961 // Solidity: function _acceptAdmin() returns(uint256) 962 func (_CToken *CTokenSession) AcceptAdmin() (*types.Transaction, error) { 963 return _CToken.Contract.AcceptAdmin(&_CToken.TransactOpts) 964 } 965 966 // AcceptAdmin is a paid mutator transaction binding the contract method 0xe9c714f2. 967 // 968 // Solidity: function _acceptAdmin() returns(uint256) 969 func (_CToken *CTokenTransactorSession) AcceptAdmin() (*types.Transaction, error) { 970 return _CToken.Contract.AcceptAdmin(&_CToken.TransactOpts) 971 } 972 973 // AddReserves is a paid mutator transaction binding the contract method 0x3e941010. 974 // 975 // Solidity: function _addReserves(uint256 addAmount) returns(uint256) 976 func (_CToken *CTokenTransactor) AddReserves(opts *bind.TransactOpts, addAmount *big.Int) (*types.Transaction, error) { 977 return _CToken.contract.Transact(opts, "_addReserves", addAmount) 978 } 979 980 // AddReserves is a paid mutator transaction binding the contract method 0x3e941010. 981 // 982 // Solidity: function _addReserves(uint256 addAmount) returns(uint256) 983 func (_CToken *CTokenSession) AddReserves(addAmount *big.Int) (*types.Transaction, error) { 984 return _CToken.Contract.AddReserves(&_CToken.TransactOpts, addAmount) 985 } 986 987 // AddReserves is a paid mutator transaction binding the contract method 0x3e941010. 988 // 989 // Solidity: function _addReserves(uint256 addAmount) returns(uint256) 990 func (_CToken *CTokenTransactorSession) AddReserves(addAmount *big.Int) (*types.Transaction, error) { 991 return _CToken.Contract.AddReserves(&_CToken.TransactOpts, addAmount) 992 } 993 994 // ReduceReserves is a paid mutator transaction binding the contract method 0x601a0bf1. 995 // 996 // Solidity: function _reduceReserves(uint256 reduceAmount) returns(uint256) 997 func (_CToken *CTokenTransactor) ReduceReserves(opts *bind.TransactOpts, reduceAmount *big.Int) (*types.Transaction, error) { 998 return _CToken.contract.Transact(opts, "_reduceReserves", reduceAmount) 999 } 1000 1001 // ReduceReserves is a paid mutator transaction binding the contract method 0x601a0bf1. 1002 // 1003 // Solidity: function _reduceReserves(uint256 reduceAmount) returns(uint256) 1004 func (_CToken *CTokenSession) ReduceReserves(reduceAmount *big.Int) (*types.Transaction, error) { 1005 return _CToken.Contract.ReduceReserves(&_CToken.TransactOpts, reduceAmount) 1006 } 1007 1008 // ReduceReserves is a paid mutator transaction binding the contract method 0x601a0bf1. 1009 // 1010 // Solidity: function _reduceReserves(uint256 reduceAmount) returns(uint256) 1011 func (_CToken *CTokenTransactorSession) ReduceReserves(reduceAmount *big.Int) (*types.Transaction, error) { 1012 return _CToken.Contract.ReduceReserves(&_CToken.TransactOpts, reduceAmount) 1013 } 1014 1015 // SetComptroller is a paid mutator transaction binding the contract method 0x4576b5db. 1016 // 1017 // Solidity: function _setComptroller(address newComptroller) returns(uint256) 1018 func (_CToken *CTokenTransactor) SetComptroller(opts *bind.TransactOpts, newComptroller common.Address) (*types.Transaction, error) { 1019 return _CToken.contract.Transact(opts, "_setComptroller", newComptroller) 1020 } 1021 1022 // SetComptroller is a paid mutator transaction binding the contract method 0x4576b5db. 1023 // 1024 // Solidity: function _setComptroller(address newComptroller) returns(uint256) 1025 func (_CToken *CTokenSession) SetComptroller(newComptroller common.Address) (*types.Transaction, error) { 1026 return _CToken.Contract.SetComptroller(&_CToken.TransactOpts, newComptroller) 1027 } 1028 1029 // SetComptroller is a paid mutator transaction binding the contract method 0x4576b5db. 1030 // 1031 // Solidity: function _setComptroller(address newComptroller) returns(uint256) 1032 func (_CToken *CTokenTransactorSession) SetComptroller(newComptroller common.Address) (*types.Transaction, error) { 1033 return _CToken.Contract.SetComptroller(&_CToken.TransactOpts, newComptroller) 1034 } 1035 1036 // SetImplementation is a paid mutator transaction binding the contract method 0x555bcc40. 1037 // 1038 // Solidity: function _setImplementation(address implementation_, bool allowResign, bytes becomeImplementationData) returns() 1039 func (_CToken *CTokenTransactor) SetImplementation(opts *bind.TransactOpts, implementation_ common.Address, allowResign bool, becomeImplementationData []byte) (*types.Transaction, error) { 1040 return _CToken.contract.Transact(opts, "_setImplementation", implementation_, allowResign, becomeImplementationData) 1041 } 1042 1043 // SetImplementation is a paid mutator transaction binding the contract method 0x555bcc40. 1044 // 1045 // Solidity: function _setImplementation(address implementation_, bool allowResign, bytes becomeImplementationData) returns() 1046 func (_CToken *CTokenSession) SetImplementation(implementation_ common.Address, allowResign bool, becomeImplementationData []byte) (*types.Transaction, error) { 1047 return _CToken.Contract.SetImplementation(&_CToken.TransactOpts, implementation_, allowResign, becomeImplementationData) 1048 } 1049 1050 // SetImplementation is a paid mutator transaction binding the contract method 0x555bcc40. 1051 // 1052 // Solidity: function _setImplementation(address implementation_, bool allowResign, bytes becomeImplementationData) returns() 1053 func (_CToken *CTokenTransactorSession) SetImplementation(implementation_ common.Address, allowResign bool, becomeImplementationData []byte) (*types.Transaction, error) { 1054 return _CToken.Contract.SetImplementation(&_CToken.TransactOpts, implementation_, allowResign, becomeImplementationData) 1055 } 1056 1057 // SetInterestRateModel is a paid mutator transaction binding the contract method 0xf2b3abbd. 1058 // 1059 // Solidity: function _setInterestRateModel(address newInterestRateModel) returns(uint256) 1060 func (_CToken *CTokenTransactor) SetInterestRateModel(opts *bind.TransactOpts, newInterestRateModel common.Address) (*types.Transaction, error) { 1061 return _CToken.contract.Transact(opts, "_setInterestRateModel", newInterestRateModel) 1062 } 1063 1064 // SetInterestRateModel is a paid mutator transaction binding the contract method 0xf2b3abbd. 1065 // 1066 // Solidity: function _setInterestRateModel(address newInterestRateModel) returns(uint256) 1067 func (_CToken *CTokenSession) SetInterestRateModel(newInterestRateModel common.Address) (*types.Transaction, error) { 1068 return _CToken.Contract.SetInterestRateModel(&_CToken.TransactOpts, newInterestRateModel) 1069 } 1070 1071 // SetInterestRateModel is a paid mutator transaction binding the contract method 0xf2b3abbd. 1072 // 1073 // Solidity: function _setInterestRateModel(address newInterestRateModel) returns(uint256) 1074 func (_CToken *CTokenTransactorSession) SetInterestRateModel(newInterestRateModel common.Address) (*types.Transaction, error) { 1075 return _CToken.Contract.SetInterestRateModel(&_CToken.TransactOpts, newInterestRateModel) 1076 } 1077 1078 // SetPendingAdmin is a paid mutator transaction binding the contract method 0xb71d1a0c. 1079 // 1080 // Solidity: function _setPendingAdmin(address newPendingAdmin) returns(uint256) 1081 func (_CToken *CTokenTransactor) SetPendingAdmin(opts *bind.TransactOpts, newPendingAdmin common.Address) (*types.Transaction, error) { 1082 return _CToken.contract.Transact(opts, "_setPendingAdmin", newPendingAdmin) 1083 } 1084 1085 // SetPendingAdmin is a paid mutator transaction binding the contract method 0xb71d1a0c. 1086 // 1087 // Solidity: function _setPendingAdmin(address newPendingAdmin) returns(uint256) 1088 func (_CToken *CTokenSession) SetPendingAdmin(newPendingAdmin common.Address) (*types.Transaction, error) { 1089 return _CToken.Contract.SetPendingAdmin(&_CToken.TransactOpts, newPendingAdmin) 1090 } 1091 1092 // SetPendingAdmin is a paid mutator transaction binding the contract method 0xb71d1a0c. 1093 // 1094 // Solidity: function _setPendingAdmin(address newPendingAdmin) returns(uint256) 1095 func (_CToken *CTokenTransactorSession) SetPendingAdmin(newPendingAdmin common.Address) (*types.Transaction, error) { 1096 return _CToken.Contract.SetPendingAdmin(&_CToken.TransactOpts, newPendingAdmin) 1097 } 1098 1099 // SetReserveFactor is a paid mutator transaction binding the contract method 0xfca7820b. 1100 // 1101 // Solidity: function _setReserveFactor(uint256 newReserveFactorMantissa) returns(uint256) 1102 func (_CToken *CTokenTransactor) SetReserveFactor(opts *bind.TransactOpts, newReserveFactorMantissa *big.Int) (*types.Transaction, error) { 1103 return _CToken.contract.Transact(opts, "_setReserveFactor", newReserveFactorMantissa) 1104 } 1105 1106 // SetReserveFactor is a paid mutator transaction binding the contract method 0xfca7820b. 1107 // 1108 // Solidity: function _setReserveFactor(uint256 newReserveFactorMantissa) returns(uint256) 1109 func (_CToken *CTokenSession) SetReserveFactor(newReserveFactorMantissa *big.Int) (*types.Transaction, error) { 1110 return _CToken.Contract.SetReserveFactor(&_CToken.TransactOpts, newReserveFactorMantissa) 1111 } 1112 1113 // SetReserveFactor is a paid mutator transaction binding the contract method 0xfca7820b. 1114 // 1115 // Solidity: function _setReserveFactor(uint256 newReserveFactorMantissa) returns(uint256) 1116 func (_CToken *CTokenTransactorSession) SetReserveFactor(newReserveFactorMantissa *big.Int) (*types.Transaction, error) { 1117 return _CToken.Contract.SetReserveFactor(&_CToken.TransactOpts, newReserveFactorMantissa) 1118 } 1119 1120 // AccrueInterest is a paid mutator transaction binding the contract method 0xa6afed95. 1121 // 1122 // Solidity: function accrueInterest() returns(uint256) 1123 func (_CToken *CTokenTransactor) AccrueInterest(opts *bind.TransactOpts) (*types.Transaction, error) { 1124 return _CToken.contract.Transact(opts, "accrueInterest") 1125 } 1126 1127 // AccrueInterest is a paid mutator transaction binding the contract method 0xa6afed95. 1128 // 1129 // Solidity: function accrueInterest() returns(uint256) 1130 func (_CToken *CTokenSession) AccrueInterest() (*types.Transaction, error) { 1131 return _CToken.Contract.AccrueInterest(&_CToken.TransactOpts) 1132 } 1133 1134 // AccrueInterest is a paid mutator transaction binding the contract method 0xa6afed95. 1135 // 1136 // Solidity: function accrueInterest() returns(uint256) 1137 func (_CToken *CTokenTransactorSession) AccrueInterest() (*types.Transaction, error) { 1138 return _CToken.Contract.AccrueInterest(&_CToken.TransactOpts) 1139 } 1140 1141 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1142 // 1143 // Solidity: function approve(address spender, uint256 amount) returns(bool) 1144 func (_CToken *CTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { 1145 return _CToken.contract.Transact(opts, "approve", spender, amount) 1146 } 1147 1148 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1149 // 1150 // Solidity: function approve(address spender, uint256 amount) returns(bool) 1151 func (_CToken *CTokenSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { 1152 return _CToken.Contract.Approve(&_CToken.TransactOpts, spender, amount) 1153 } 1154 1155 // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. 1156 // 1157 // Solidity: function approve(address spender, uint256 amount) returns(bool) 1158 func (_CToken *CTokenTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { 1159 return _CToken.Contract.Approve(&_CToken.TransactOpts, spender, amount) 1160 } 1161 1162 // BalanceOfUnderlying is a paid mutator transaction binding the contract method 0x3af9e669. 1163 // 1164 // Solidity: function balanceOfUnderlying(address owner) returns(uint256) 1165 func (_CToken *CTokenTransactor) BalanceOfUnderlying(opts *bind.TransactOpts, owner common.Address) (*types.Transaction, error) { 1166 return _CToken.contract.Transact(opts, "balanceOfUnderlying", owner) 1167 } 1168 1169 // BalanceOfUnderlying is a paid mutator transaction binding the contract method 0x3af9e669. 1170 // 1171 // Solidity: function balanceOfUnderlying(address owner) returns(uint256) 1172 func (_CToken *CTokenSession) BalanceOfUnderlying(owner common.Address) (*types.Transaction, error) { 1173 return _CToken.Contract.BalanceOfUnderlying(&_CToken.TransactOpts, owner) 1174 } 1175 1176 // BalanceOfUnderlying is a paid mutator transaction binding the contract method 0x3af9e669. 1177 // 1178 // Solidity: function balanceOfUnderlying(address owner) returns(uint256) 1179 func (_CToken *CTokenTransactorSession) BalanceOfUnderlying(owner common.Address) (*types.Transaction, error) { 1180 return _CToken.Contract.BalanceOfUnderlying(&_CToken.TransactOpts, owner) 1181 } 1182 1183 // Borrow is a paid mutator transaction binding the contract method 0xc5ebeaec. 1184 // 1185 // Solidity: function borrow(uint256 borrowAmount) returns(uint256) 1186 func (_CToken *CTokenTransactor) Borrow(opts *bind.TransactOpts, borrowAmount *big.Int) (*types.Transaction, error) { 1187 return _CToken.contract.Transact(opts, "borrow", borrowAmount) 1188 } 1189 1190 // Borrow is a paid mutator transaction binding the contract method 0xc5ebeaec. 1191 // 1192 // Solidity: function borrow(uint256 borrowAmount) returns(uint256) 1193 func (_CToken *CTokenSession) Borrow(borrowAmount *big.Int) (*types.Transaction, error) { 1194 return _CToken.Contract.Borrow(&_CToken.TransactOpts, borrowAmount) 1195 } 1196 1197 // Borrow is a paid mutator transaction binding the contract method 0xc5ebeaec. 1198 // 1199 // Solidity: function borrow(uint256 borrowAmount) returns(uint256) 1200 func (_CToken *CTokenTransactorSession) Borrow(borrowAmount *big.Int) (*types.Transaction, error) { 1201 return _CToken.Contract.Borrow(&_CToken.TransactOpts, borrowAmount) 1202 } 1203 1204 // BorrowBalanceCurrent is a paid mutator transaction binding the contract method 0x17bfdfbc. 1205 // 1206 // Solidity: function borrowBalanceCurrent(address account) returns(uint256) 1207 func (_CToken *CTokenTransactor) BorrowBalanceCurrent(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) { 1208 return _CToken.contract.Transact(opts, "borrowBalanceCurrent", account) 1209 } 1210 1211 // BorrowBalanceCurrent is a paid mutator transaction binding the contract method 0x17bfdfbc. 1212 // 1213 // Solidity: function borrowBalanceCurrent(address account) returns(uint256) 1214 func (_CToken *CTokenSession) BorrowBalanceCurrent(account common.Address) (*types.Transaction, error) { 1215 return _CToken.Contract.BorrowBalanceCurrent(&_CToken.TransactOpts, account) 1216 } 1217 1218 // BorrowBalanceCurrent is a paid mutator transaction binding the contract method 0x17bfdfbc. 1219 // 1220 // Solidity: function borrowBalanceCurrent(address account) returns(uint256) 1221 func (_CToken *CTokenTransactorSession) BorrowBalanceCurrent(account common.Address) (*types.Transaction, error) { 1222 return _CToken.Contract.BorrowBalanceCurrent(&_CToken.TransactOpts, account) 1223 } 1224 1225 // DelegateToImplementation is a paid mutator transaction binding the contract method 0x0933c1ed. 1226 // 1227 // Solidity: function delegateToImplementation(bytes data) returns(bytes) 1228 func (_CToken *CTokenTransactor) DelegateToImplementation(opts *bind.TransactOpts, data []byte) (*types.Transaction, error) { 1229 return _CToken.contract.Transact(opts, "delegateToImplementation", data) 1230 } 1231 1232 // DelegateToImplementation is a paid mutator transaction binding the contract method 0x0933c1ed. 1233 // 1234 // Solidity: function delegateToImplementation(bytes data) returns(bytes) 1235 func (_CToken *CTokenSession) DelegateToImplementation(data []byte) (*types.Transaction, error) { 1236 return _CToken.Contract.DelegateToImplementation(&_CToken.TransactOpts, data) 1237 } 1238 1239 // DelegateToImplementation is a paid mutator transaction binding the contract method 0x0933c1ed. 1240 // 1241 // Solidity: function delegateToImplementation(bytes data) returns(bytes) 1242 func (_CToken *CTokenTransactorSession) DelegateToImplementation(data []byte) (*types.Transaction, error) { 1243 return _CToken.Contract.DelegateToImplementation(&_CToken.TransactOpts, data) 1244 } 1245 1246 // ExchangeRateCurrent is a paid mutator transaction binding the contract method 0xbd6d894d. 1247 // 1248 // Solidity: function exchangeRateCurrent() returns(uint256) 1249 func (_CToken *CTokenTransactor) ExchangeRateCurrent(opts *bind.TransactOpts) (*types.Transaction, error) { 1250 return _CToken.contract.Transact(opts, "exchangeRateCurrent") 1251 } 1252 1253 // ExchangeRateCurrent is a paid mutator transaction binding the contract method 0xbd6d894d. 1254 // 1255 // Solidity: function exchangeRateCurrent() returns(uint256) 1256 func (_CToken *CTokenSession) ExchangeRateCurrent() (*types.Transaction, error) { 1257 return _CToken.Contract.ExchangeRateCurrent(&_CToken.TransactOpts) 1258 } 1259 1260 // ExchangeRateCurrent is a paid mutator transaction binding the contract method 0xbd6d894d. 1261 // 1262 // Solidity: function exchangeRateCurrent() returns(uint256) 1263 func (_CToken *CTokenTransactorSession) ExchangeRateCurrent() (*types.Transaction, error) { 1264 return _CToken.Contract.ExchangeRateCurrent(&_CToken.TransactOpts) 1265 } 1266 1267 // LiquidateBorrow is a paid mutator transaction binding the contract method 0xf5e3c462. 1268 // 1269 // Solidity: function liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns(uint256) 1270 func (_CToken *CTokenTransactor) LiquidateBorrow(opts *bind.TransactOpts, borrower common.Address, repayAmount *big.Int, cTokenCollateral common.Address) (*types.Transaction, error) { 1271 return _CToken.contract.Transact(opts, "liquidateBorrow", borrower, repayAmount, cTokenCollateral) 1272 } 1273 1274 // LiquidateBorrow is a paid mutator transaction binding the contract method 0xf5e3c462. 1275 // 1276 // Solidity: function liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns(uint256) 1277 func (_CToken *CTokenSession) LiquidateBorrow(borrower common.Address, repayAmount *big.Int, cTokenCollateral common.Address) (*types.Transaction, error) { 1278 return _CToken.Contract.LiquidateBorrow(&_CToken.TransactOpts, borrower, repayAmount, cTokenCollateral) 1279 } 1280 1281 // LiquidateBorrow is a paid mutator transaction binding the contract method 0xf5e3c462. 1282 // 1283 // Solidity: function liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns(uint256) 1284 func (_CToken *CTokenTransactorSession) LiquidateBorrow(borrower common.Address, repayAmount *big.Int, cTokenCollateral common.Address) (*types.Transaction, error) { 1285 return _CToken.Contract.LiquidateBorrow(&_CToken.TransactOpts, borrower, repayAmount, cTokenCollateral) 1286 } 1287 1288 // Mint is a paid mutator transaction binding the contract method 0xa0712d68. 1289 // 1290 // Solidity: function mint(uint256 mintAmount) returns(uint256) 1291 func (_CToken *CTokenTransactor) Mint(opts *bind.TransactOpts, mintAmount *big.Int) (*types.Transaction, error) { 1292 return _CToken.contract.Transact(opts, "mint", mintAmount) 1293 } 1294 1295 // Mint is a paid mutator transaction binding the contract method 0xa0712d68. 1296 // 1297 // Solidity: function mint(uint256 mintAmount) returns(uint256) 1298 func (_CToken *CTokenSession) Mint(mintAmount *big.Int) (*types.Transaction, error) { 1299 return _CToken.Contract.Mint(&_CToken.TransactOpts, mintAmount) 1300 } 1301 1302 // Mint is a paid mutator transaction binding the contract method 0xa0712d68. 1303 // 1304 // Solidity: function mint(uint256 mintAmount) returns(uint256) 1305 func (_CToken *CTokenTransactorSession) Mint(mintAmount *big.Int) (*types.Transaction, error) { 1306 return _CToken.Contract.Mint(&_CToken.TransactOpts, mintAmount) 1307 } 1308 1309 // Redeem is a paid mutator transaction binding the contract method 0xdb006a75. 1310 // 1311 // Solidity: function redeem(uint256 redeemTokens) returns(uint256) 1312 func (_CToken *CTokenTransactor) Redeem(opts *bind.TransactOpts, redeemTokens *big.Int) (*types.Transaction, error) { 1313 return _CToken.contract.Transact(opts, "redeem", redeemTokens) 1314 } 1315 1316 // Redeem is a paid mutator transaction binding the contract method 0xdb006a75. 1317 // 1318 // Solidity: function redeem(uint256 redeemTokens) returns(uint256) 1319 func (_CToken *CTokenSession) Redeem(redeemTokens *big.Int) (*types.Transaction, error) { 1320 return _CToken.Contract.Redeem(&_CToken.TransactOpts, redeemTokens) 1321 } 1322 1323 // Redeem is a paid mutator transaction binding the contract method 0xdb006a75. 1324 // 1325 // Solidity: function redeem(uint256 redeemTokens) returns(uint256) 1326 func (_CToken *CTokenTransactorSession) Redeem(redeemTokens *big.Int) (*types.Transaction, error) { 1327 return _CToken.Contract.Redeem(&_CToken.TransactOpts, redeemTokens) 1328 } 1329 1330 // RedeemUnderlying is a paid mutator transaction binding the contract method 0x852a12e3. 1331 // 1332 // Solidity: function redeemUnderlying(uint256 redeemAmount) returns(uint256) 1333 func (_CToken *CTokenTransactor) RedeemUnderlying(opts *bind.TransactOpts, redeemAmount *big.Int) (*types.Transaction, error) { 1334 return _CToken.contract.Transact(opts, "redeemUnderlying", redeemAmount) 1335 } 1336 1337 // RedeemUnderlying is a paid mutator transaction binding the contract method 0x852a12e3. 1338 // 1339 // Solidity: function redeemUnderlying(uint256 redeemAmount) returns(uint256) 1340 func (_CToken *CTokenSession) RedeemUnderlying(redeemAmount *big.Int) (*types.Transaction, error) { 1341 return _CToken.Contract.RedeemUnderlying(&_CToken.TransactOpts, redeemAmount) 1342 } 1343 1344 // RedeemUnderlying is a paid mutator transaction binding the contract method 0x852a12e3. 1345 // 1346 // Solidity: function redeemUnderlying(uint256 redeemAmount) returns(uint256) 1347 func (_CToken *CTokenTransactorSession) RedeemUnderlying(redeemAmount *big.Int) (*types.Transaction, error) { 1348 return _CToken.Contract.RedeemUnderlying(&_CToken.TransactOpts, redeemAmount) 1349 } 1350 1351 // RepayBorrow is a paid mutator transaction binding the contract method 0x0e752702. 1352 // 1353 // Solidity: function repayBorrow(uint256 repayAmount) returns(uint256) 1354 func (_CToken *CTokenTransactor) RepayBorrow(opts *bind.TransactOpts, repayAmount *big.Int) (*types.Transaction, error) { 1355 return _CToken.contract.Transact(opts, "repayBorrow", repayAmount) 1356 } 1357 1358 // RepayBorrow is a paid mutator transaction binding the contract method 0x0e752702. 1359 // 1360 // Solidity: function repayBorrow(uint256 repayAmount) returns(uint256) 1361 func (_CToken *CTokenSession) RepayBorrow(repayAmount *big.Int) (*types.Transaction, error) { 1362 return _CToken.Contract.RepayBorrow(&_CToken.TransactOpts, repayAmount) 1363 } 1364 1365 // RepayBorrow is a paid mutator transaction binding the contract method 0x0e752702. 1366 // 1367 // Solidity: function repayBorrow(uint256 repayAmount) returns(uint256) 1368 func (_CToken *CTokenTransactorSession) RepayBorrow(repayAmount *big.Int) (*types.Transaction, error) { 1369 return _CToken.Contract.RepayBorrow(&_CToken.TransactOpts, repayAmount) 1370 } 1371 1372 // RepayBorrowBehalf is a paid mutator transaction binding the contract method 0x2608f818. 1373 // 1374 // Solidity: function repayBorrowBehalf(address borrower, uint256 repayAmount) returns(uint256) 1375 func (_CToken *CTokenTransactor) RepayBorrowBehalf(opts *bind.TransactOpts, borrower common.Address, repayAmount *big.Int) (*types.Transaction, error) { 1376 return _CToken.contract.Transact(opts, "repayBorrowBehalf", borrower, repayAmount) 1377 } 1378 1379 // RepayBorrowBehalf is a paid mutator transaction binding the contract method 0x2608f818. 1380 // 1381 // Solidity: function repayBorrowBehalf(address borrower, uint256 repayAmount) returns(uint256) 1382 func (_CToken *CTokenSession) RepayBorrowBehalf(borrower common.Address, repayAmount *big.Int) (*types.Transaction, error) { 1383 return _CToken.Contract.RepayBorrowBehalf(&_CToken.TransactOpts, borrower, repayAmount) 1384 } 1385 1386 // RepayBorrowBehalf is a paid mutator transaction binding the contract method 0x2608f818. 1387 // 1388 // Solidity: function repayBorrowBehalf(address borrower, uint256 repayAmount) returns(uint256) 1389 func (_CToken *CTokenTransactorSession) RepayBorrowBehalf(borrower common.Address, repayAmount *big.Int) (*types.Transaction, error) { 1390 return _CToken.Contract.RepayBorrowBehalf(&_CToken.TransactOpts, borrower, repayAmount) 1391 } 1392 1393 // Seize is a paid mutator transaction binding the contract method 0xb2a02ff1. 1394 // 1395 // Solidity: function seize(address liquidator, address borrower, uint256 seizeTokens) returns(uint256) 1396 func (_CToken *CTokenTransactor) Seize(opts *bind.TransactOpts, liquidator common.Address, borrower common.Address, seizeTokens *big.Int) (*types.Transaction, error) { 1397 return _CToken.contract.Transact(opts, "seize", liquidator, borrower, seizeTokens) 1398 } 1399 1400 // Seize is a paid mutator transaction binding the contract method 0xb2a02ff1. 1401 // 1402 // Solidity: function seize(address liquidator, address borrower, uint256 seizeTokens) returns(uint256) 1403 func (_CToken *CTokenSession) Seize(liquidator common.Address, borrower common.Address, seizeTokens *big.Int) (*types.Transaction, error) { 1404 return _CToken.Contract.Seize(&_CToken.TransactOpts, liquidator, borrower, seizeTokens) 1405 } 1406 1407 // Seize is a paid mutator transaction binding the contract method 0xb2a02ff1. 1408 // 1409 // Solidity: function seize(address liquidator, address borrower, uint256 seizeTokens) returns(uint256) 1410 func (_CToken *CTokenTransactorSession) Seize(liquidator common.Address, borrower common.Address, seizeTokens *big.Int) (*types.Transaction, error) { 1411 return _CToken.Contract.Seize(&_CToken.TransactOpts, liquidator, borrower, seizeTokens) 1412 } 1413 1414 // TotalBorrowsCurrent is a paid mutator transaction binding the contract method 0x73acee98. 1415 // 1416 // Solidity: function totalBorrowsCurrent() returns(uint256) 1417 func (_CToken *CTokenTransactor) TotalBorrowsCurrent(opts *bind.TransactOpts) (*types.Transaction, error) { 1418 return _CToken.contract.Transact(opts, "totalBorrowsCurrent") 1419 } 1420 1421 // TotalBorrowsCurrent is a paid mutator transaction binding the contract method 0x73acee98. 1422 // 1423 // Solidity: function totalBorrowsCurrent() returns(uint256) 1424 func (_CToken *CTokenSession) TotalBorrowsCurrent() (*types.Transaction, error) { 1425 return _CToken.Contract.TotalBorrowsCurrent(&_CToken.TransactOpts) 1426 } 1427 1428 // TotalBorrowsCurrent is a paid mutator transaction binding the contract method 0x73acee98. 1429 // 1430 // Solidity: function totalBorrowsCurrent() returns(uint256) 1431 func (_CToken *CTokenTransactorSession) TotalBorrowsCurrent() (*types.Transaction, error) { 1432 return _CToken.Contract.TotalBorrowsCurrent(&_CToken.TransactOpts) 1433 } 1434 1435 // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. 1436 // 1437 // Solidity: function transfer(address dst, uint256 amount) returns(bool) 1438 func (_CToken *CTokenTransactor) Transfer(opts *bind.TransactOpts, dst common.Address, amount *big.Int) (*types.Transaction, error) { 1439 return _CToken.contract.Transact(opts, "transfer", dst, amount) 1440 } 1441 1442 // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. 1443 // 1444 // Solidity: function transfer(address dst, uint256 amount) returns(bool) 1445 func (_CToken *CTokenSession) Transfer(dst common.Address, amount *big.Int) (*types.Transaction, error) { 1446 return _CToken.Contract.Transfer(&_CToken.TransactOpts, dst, amount) 1447 } 1448 1449 // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. 1450 // 1451 // Solidity: function transfer(address dst, uint256 amount) returns(bool) 1452 func (_CToken *CTokenTransactorSession) Transfer(dst common.Address, amount *big.Int) (*types.Transaction, error) { 1453 return _CToken.Contract.Transfer(&_CToken.TransactOpts, dst, amount) 1454 } 1455 1456 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1457 // 1458 // Solidity: function transferFrom(address src, address dst, uint256 amount) returns(bool) 1459 func (_CToken *CTokenTransactor) TransferFrom(opts *bind.TransactOpts, src common.Address, dst common.Address, amount *big.Int) (*types.Transaction, error) { 1460 return _CToken.contract.Transact(opts, "transferFrom", src, dst, amount) 1461 } 1462 1463 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1464 // 1465 // Solidity: function transferFrom(address src, address dst, uint256 amount) returns(bool) 1466 func (_CToken *CTokenSession) TransferFrom(src common.Address, dst common.Address, amount *big.Int) (*types.Transaction, error) { 1467 return _CToken.Contract.TransferFrom(&_CToken.TransactOpts, src, dst, amount) 1468 } 1469 1470 // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. 1471 // 1472 // Solidity: function transferFrom(address src, address dst, uint256 amount) returns(bool) 1473 func (_CToken *CTokenTransactorSession) TransferFrom(src common.Address, dst common.Address, amount *big.Int) (*types.Transaction, error) { 1474 return _CToken.Contract.TransferFrom(&_CToken.TransactOpts, src, dst, amount) 1475 } 1476 1477 // Fallback is a paid mutator transaction binding the contract fallback function. 1478 // 1479 // Solidity: fallback() payable returns() 1480 func (_CToken *CTokenTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { 1481 return _CToken.contract.RawTransact(opts, calldata) 1482 } 1483 1484 // Fallback is a paid mutator transaction binding the contract fallback function. 1485 // 1486 // Solidity: fallback() payable returns() 1487 func (_CToken *CTokenSession) Fallback(calldata []byte) (*types.Transaction, error) { 1488 return _CToken.Contract.Fallback(&_CToken.TransactOpts, calldata) 1489 } 1490 1491 // Fallback is a paid mutator transaction binding the contract fallback function. 1492 // 1493 // Solidity: fallback() payable returns() 1494 func (_CToken *CTokenTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { 1495 return _CToken.Contract.Fallback(&_CToken.TransactOpts, calldata) 1496 } 1497 1498 // CTokenAccrueInterestIterator is returned from FilterAccrueInterest and is used to iterate over the raw logs and unpacked data for AccrueInterest events raised by the CToken contract. 1499 type CTokenAccrueInterestIterator struct { 1500 Event *CTokenAccrueInterest // Event containing the contract specifics and raw log 1501 1502 contract *bind.BoundContract // Generic contract to use for unpacking event data 1503 event string // Event name to use for unpacking event data 1504 1505 logs chan types.Log // Log channel receiving the found contract events 1506 sub ethereum.Subscription // Subscription for errors, completion and termination 1507 done bool // Whether the subscription completed delivering logs 1508 fail error // Occurred error to stop iteration 1509 } 1510 1511 // Next advances the iterator to the subsequent event, returning whether there 1512 // are any more events found. In case of a retrieval or parsing error, false is 1513 // returned and Error() can be queried for the exact failure. 1514 func (it *CTokenAccrueInterestIterator) Next() bool { 1515 // If the iterator failed, stop iterating 1516 if it.fail != nil { 1517 return false 1518 } 1519 // If the iterator completed, deliver directly whatever's available 1520 if it.done { 1521 select { 1522 case log := <-it.logs: 1523 it.Event = new(CTokenAccrueInterest) 1524 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1525 it.fail = err 1526 return false 1527 } 1528 it.Event.Raw = log 1529 return true 1530 1531 default: 1532 return false 1533 } 1534 } 1535 // Iterator still in progress, wait for either a data or an error event 1536 select { 1537 case log := <-it.logs: 1538 it.Event = new(CTokenAccrueInterest) 1539 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1540 it.fail = err 1541 return false 1542 } 1543 it.Event.Raw = log 1544 return true 1545 1546 case err := <-it.sub.Err(): 1547 it.done = true 1548 it.fail = err 1549 return it.Next() 1550 } 1551 } 1552 1553 // Error returns any retrieval or parsing error occurred during filtering. 1554 func (it *CTokenAccrueInterestIterator) Error() error { 1555 return it.fail 1556 } 1557 1558 // Close terminates the iteration process, releasing any pending underlying 1559 // resources. 1560 func (it *CTokenAccrueInterestIterator) Close() error { 1561 it.sub.Unsubscribe() 1562 return nil 1563 } 1564 1565 // CTokenAccrueInterest represents a AccrueInterest event raised by the CToken contract. 1566 type CTokenAccrueInterest struct { 1567 CashPrior *big.Int 1568 InterestAccumulated *big.Int 1569 BorrowIndex *big.Int 1570 TotalBorrows *big.Int 1571 Raw types.Log // Blockchain specific contextual infos 1572 } 1573 1574 // FilterAccrueInterest is a free log retrieval operation binding the contract event 0x4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04. 1575 // 1576 // Solidity: event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows) 1577 func (_CToken *CTokenFilterer) FilterAccrueInterest(opts *bind.FilterOpts) (*CTokenAccrueInterestIterator, error) { 1578 1579 logs, sub, err := _CToken.contract.FilterLogs(opts, "AccrueInterest") 1580 if err != nil { 1581 return nil, err 1582 } 1583 return &CTokenAccrueInterestIterator{contract: _CToken.contract, event: "AccrueInterest", logs: logs, sub: sub}, nil 1584 } 1585 1586 // WatchAccrueInterest is a free log subscription operation binding the contract event 0x4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04. 1587 // 1588 // Solidity: event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows) 1589 func (_CToken *CTokenFilterer) WatchAccrueInterest(opts *bind.WatchOpts, sink chan<- *CTokenAccrueInterest) (event.Subscription, error) { 1590 1591 logs, sub, err := _CToken.contract.WatchLogs(opts, "AccrueInterest") 1592 if err != nil { 1593 return nil, err 1594 } 1595 return event.NewSubscription(func(quit <-chan struct{}) error { 1596 defer sub.Unsubscribe() 1597 for { 1598 select { 1599 case log := <-logs: 1600 // New log arrived, parse the event and forward to the user 1601 event := new(CTokenAccrueInterest) 1602 if err := _CToken.contract.UnpackLog(event, "AccrueInterest", log); err != nil { 1603 return err 1604 } 1605 event.Raw = log 1606 1607 select { 1608 case sink <- event: 1609 case err := <-sub.Err(): 1610 return err 1611 case <-quit: 1612 return nil 1613 } 1614 case err := <-sub.Err(): 1615 return err 1616 case <-quit: 1617 return nil 1618 } 1619 } 1620 }), nil 1621 } 1622 1623 // ParseAccrueInterest is a log parse operation binding the contract event 0x4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04. 1624 // 1625 // Solidity: event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows) 1626 func (_CToken *CTokenFilterer) ParseAccrueInterest(log types.Log) (*CTokenAccrueInterest, error) { 1627 event := new(CTokenAccrueInterest) 1628 if err := _CToken.contract.UnpackLog(event, "AccrueInterest", log); err != nil { 1629 return nil, err 1630 } 1631 return event, nil 1632 } 1633 1634 // CTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the CToken contract. 1635 type CTokenApprovalIterator struct { 1636 Event *CTokenApproval // Event containing the contract specifics and raw log 1637 1638 contract *bind.BoundContract // Generic contract to use for unpacking event data 1639 event string // Event name to use for unpacking event data 1640 1641 logs chan types.Log // Log channel receiving the found contract events 1642 sub ethereum.Subscription // Subscription for errors, completion and termination 1643 done bool // Whether the subscription completed delivering logs 1644 fail error // Occurred error to stop iteration 1645 } 1646 1647 // Next advances the iterator to the subsequent event, returning whether there 1648 // are any more events found. In case of a retrieval or parsing error, false is 1649 // returned and Error() can be queried for the exact failure. 1650 func (it *CTokenApprovalIterator) Next() bool { 1651 // If the iterator failed, stop iterating 1652 if it.fail != nil { 1653 return false 1654 } 1655 // If the iterator completed, deliver directly whatever's available 1656 if it.done { 1657 select { 1658 case log := <-it.logs: 1659 it.Event = new(CTokenApproval) 1660 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1661 it.fail = err 1662 return false 1663 } 1664 it.Event.Raw = log 1665 return true 1666 1667 default: 1668 return false 1669 } 1670 } 1671 // Iterator still in progress, wait for either a data or an error event 1672 select { 1673 case log := <-it.logs: 1674 it.Event = new(CTokenApproval) 1675 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1676 it.fail = err 1677 return false 1678 } 1679 it.Event.Raw = log 1680 return true 1681 1682 case err := <-it.sub.Err(): 1683 it.done = true 1684 it.fail = err 1685 return it.Next() 1686 } 1687 } 1688 1689 // Error returns any retrieval or parsing error occurred during filtering. 1690 func (it *CTokenApprovalIterator) Error() error { 1691 return it.fail 1692 } 1693 1694 // Close terminates the iteration process, releasing any pending underlying 1695 // resources. 1696 func (it *CTokenApprovalIterator) Close() error { 1697 it.sub.Unsubscribe() 1698 return nil 1699 } 1700 1701 // CTokenApproval represents a Approval event raised by the CToken contract. 1702 type CTokenApproval struct { 1703 Owner common.Address 1704 Spender common.Address 1705 Amount *big.Int 1706 Raw types.Log // Blockchain specific contextual infos 1707 } 1708 1709 // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1710 // 1711 // Solidity: event Approval(address indexed owner, address indexed spender, uint256 amount) 1712 func (_CToken *CTokenFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*CTokenApprovalIterator, error) { 1713 1714 var ownerRule []interface{} 1715 for _, ownerItem := range owner { 1716 ownerRule = append(ownerRule, ownerItem) 1717 } 1718 var spenderRule []interface{} 1719 for _, spenderItem := range spender { 1720 spenderRule = append(spenderRule, spenderItem) 1721 } 1722 1723 logs, sub, err := _CToken.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) 1724 if err != nil { 1725 return nil, err 1726 } 1727 return &CTokenApprovalIterator{contract: _CToken.contract, event: "Approval", logs: logs, sub: sub}, nil 1728 } 1729 1730 // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1731 // 1732 // Solidity: event Approval(address indexed owner, address indexed spender, uint256 amount) 1733 func (_CToken *CTokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *CTokenApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { 1734 1735 var ownerRule []interface{} 1736 for _, ownerItem := range owner { 1737 ownerRule = append(ownerRule, ownerItem) 1738 } 1739 var spenderRule []interface{} 1740 for _, spenderItem := range spender { 1741 spenderRule = append(spenderRule, spenderItem) 1742 } 1743 1744 logs, sub, err := _CToken.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) 1745 if err != nil { 1746 return nil, err 1747 } 1748 return event.NewSubscription(func(quit <-chan struct{}) error { 1749 defer sub.Unsubscribe() 1750 for { 1751 select { 1752 case log := <-logs: 1753 // New log arrived, parse the event and forward to the user 1754 event := new(CTokenApproval) 1755 if err := _CToken.contract.UnpackLog(event, "Approval", log); err != nil { 1756 return err 1757 } 1758 event.Raw = log 1759 1760 select { 1761 case sink <- event: 1762 case err := <-sub.Err(): 1763 return err 1764 case <-quit: 1765 return nil 1766 } 1767 case err := <-sub.Err(): 1768 return err 1769 case <-quit: 1770 return nil 1771 } 1772 } 1773 }), nil 1774 } 1775 1776 // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. 1777 // 1778 // Solidity: event Approval(address indexed owner, address indexed spender, uint256 amount) 1779 func (_CToken *CTokenFilterer) ParseApproval(log types.Log) (*CTokenApproval, error) { 1780 event := new(CTokenApproval) 1781 if err := _CToken.contract.UnpackLog(event, "Approval", log); err != nil { 1782 return nil, err 1783 } 1784 return event, nil 1785 } 1786 1787 // CTokenBorrowIterator is returned from FilterBorrow and is used to iterate over the raw logs and unpacked data for Borrow events raised by the CToken contract. 1788 type CTokenBorrowIterator struct { 1789 Event *CTokenBorrow // Event containing the contract specifics and raw log 1790 1791 contract *bind.BoundContract // Generic contract to use for unpacking event data 1792 event string // Event name to use for unpacking event data 1793 1794 logs chan types.Log // Log channel receiving the found contract events 1795 sub ethereum.Subscription // Subscription for errors, completion and termination 1796 done bool // Whether the subscription completed delivering logs 1797 fail error // Occurred error to stop iteration 1798 } 1799 1800 // Next advances the iterator to the subsequent event, returning whether there 1801 // are any more events found. In case of a retrieval or parsing error, false is 1802 // returned and Error() can be queried for the exact failure. 1803 func (it *CTokenBorrowIterator) Next() bool { 1804 // If the iterator failed, stop iterating 1805 if it.fail != nil { 1806 return false 1807 } 1808 // If the iterator completed, deliver directly whatever's available 1809 if it.done { 1810 select { 1811 case log := <-it.logs: 1812 it.Event = new(CTokenBorrow) 1813 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1814 it.fail = err 1815 return false 1816 } 1817 it.Event.Raw = log 1818 return true 1819 1820 default: 1821 return false 1822 } 1823 } 1824 // Iterator still in progress, wait for either a data or an error event 1825 select { 1826 case log := <-it.logs: 1827 it.Event = new(CTokenBorrow) 1828 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1829 it.fail = err 1830 return false 1831 } 1832 it.Event.Raw = log 1833 return true 1834 1835 case err := <-it.sub.Err(): 1836 it.done = true 1837 it.fail = err 1838 return it.Next() 1839 } 1840 } 1841 1842 // Error returns any retrieval or parsing error occurred during filtering. 1843 func (it *CTokenBorrowIterator) Error() error { 1844 return it.fail 1845 } 1846 1847 // Close terminates the iteration process, releasing any pending underlying 1848 // resources. 1849 func (it *CTokenBorrowIterator) Close() error { 1850 it.sub.Unsubscribe() 1851 return nil 1852 } 1853 1854 // CTokenBorrow represents a Borrow event raised by the CToken contract. 1855 type CTokenBorrow struct { 1856 Borrower common.Address 1857 BorrowAmount *big.Int 1858 AccountBorrows *big.Int 1859 TotalBorrows *big.Int 1860 Raw types.Log // Blockchain specific contextual infos 1861 } 1862 1863 // FilterBorrow is a free log retrieval operation binding the contract event 0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80. 1864 // 1865 // Solidity: event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows) 1866 func (_CToken *CTokenFilterer) FilterBorrow(opts *bind.FilterOpts) (*CTokenBorrowIterator, error) { 1867 1868 logs, sub, err := _CToken.contract.FilterLogs(opts, "Borrow") 1869 if err != nil { 1870 return nil, err 1871 } 1872 return &CTokenBorrowIterator{contract: _CToken.contract, event: "Borrow", logs: logs, sub: sub}, nil 1873 } 1874 1875 // WatchBorrow is a free log subscription operation binding the contract event 0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80. 1876 // 1877 // Solidity: event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows) 1878 func (_CToken *CTokenFilterer) WatchBorrow(opts *bind.WatchOpts, sink chan<- *CTokenBorrow) (event.Subscription, error) { 1879 1880 logs, sub, err := _CToken.contract.WatchLogs(opts, "Borrow") 1881 if err != nil { 1882 return nil, err 1883 } 1884 return event.NewSubscription(func(quit <-chan struct{}) error { 1885 defer sub.Unsubscribe() 1886 for { 1887 select { 1888 case log := <-logs: 1889 // New log arrived, parse the event and forward to the user 1890 event := new(CTokenBorrow) 1891 if err := _CToken.contract.UnpackLog(event, "Borrow", log); err != nil { 1892 return err 1893 } 1894 event.Raw = log 1895 1896 select { 1897 case sink <- event: 1898 case err := <-sub.Err(): 1899 return err 1900 case <-quit: 1901 return nil 1902 } 1903 case err := <-sub.Err(): 1904 return err 1905 case <-quit: 1906 return nil 1907 } 1908 } 1909 }), nil 1910 } 1911 1912 // ParseBorrow is a log parse operation binding the contract event 0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80. 1913 // 1914 // Solidity: event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows) 1915 func (_CToken *CTokenFilterer) ParseBorrow(log types.Log) (*CTokenBorrow, error) { 1916 event := new(CTokenBorrow) 1917 if err := _CToken.contract.UnpackLog(event, "Borrow", log); err != nil { 1918 return nil, err 1919 } 1920 return event, nil 1921 } 1922 1923 // CTokenFailureIterator is returned from FilterFailure and is used to iterate over the raw logs and unpacked data for Failure events raised by the CToken contract. 1924 type CTokenFailureIterator struct { 1925 Event *CTokenFailure // Event containing the contract specifics and raw log 1926 1927 contract *bind.BoundContract // Generic contract to use for unpacking event data 1928 event string // Event name to use for unpacking event data 1929 1930 logs chan types.Log // Log channel receiving the found contract events 1931 sub ethereum.Subscription // Subscription for errors, completion and termination 1932 done bool // Whether the subscription completed delivering logs 1933 fail error // Occurred error to stop iteration 1934 } 1935 1936 // Next advances the iterator to the subsequent event, returning whether there 1937 // are any more events found. In case of a retrieval or parsing error, false is 1938 // returned and Error() can be queried for the exact failure. 1939 func (it *CTokenFailureIterator) Next() bool { 1940 // If the iterator failed, stop iterating 1941 if it.fail != nil { 1942 return false 1943 } 1944 // If the iterator completed, deliver directly whatever's available 1945 if it.done { 1946 select { 1947 case log := <-it.logs: 1948 it.Event = new(CTokenFailure) 1949 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1950 it.fail = err 1951 return false 1952 } 1953 it.Event.Raw = log 1954 return true 1955 1956 default: 1957 return false 1958 } 1959 } 1960 // Iterator still in progress, wait for either a data or an error event 1961 select { 1962 case log := <-it.logs: 1963 it.Event = new(CTokenFailure) 1964 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1965 it.fail = err 1966 return false 1967 } 1968 it.Event.Raw = log 1969 return true 1970 1971 case err := <-it.sub.Err(): 1972 it.done = true 1973 it.fail = err 1974 return it.Next() 1975 } 1976 } 1977 1978 // Error returns any retrieval or parsing error occurred during filtering. 1979 func (it *CTokenFailureIterator) Error() error { 1980 return it.fail 1981 } 1982 1983 // Close terminates the iteration process, releasing any pending underlying 1984 // resources. 1985 func (it *CTokenFailureIterator) Close() error { 1986 it.sub.Unsubscribe() 1987 return nil 1988 } 1989 1990 // CTokenFailure represents a Failure event raised by the CToken contract. 1991 type CTokenFailure struct { 1992 Error *big.Int 1993 Info *big.Int 1994 Detail *big.Int 1995 Raw types.Log // Blockchain specific contextual infos 1996 } 1997 1998 // FilterFailure is a free log retrieval operation binding the contract event 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0. 1999 // 2000 // Solidity: event Failure(uint256 error, uint256 info, uint256 detail) 2001 func (_CToken *CTokenFilterer) FilterFailure(opts *bind.FilterOpts) (*CTokenFailureIterator, error) { 2002 2003 logs, sub, err := _CToken.contract.FilterLogs(opts, "Failure") 2004 if err != nil { 2005 return nil, err 2006 } 2007 return &CTokenFailureIterator{contract: _CToken.contract, event: "Failure", logs: logs, sub: sub}, nil 2008 } 2009 2010 // WatchFailure is a free log subscription operation binding the contract event 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0. 2011 // 2012 // Solidity: event Failure(uint256 error, uint256 info, uint256 detail) 2013 func (_CToken *CTokenFilterer) WatchFailure(opts *bind.WatchOpts, sink chan<- *CTokenFailure) (event.Subscription, error) { 2014 2015 logs, sub, err := _CToken.contract.WatchLogs(opts, "Failure") 2016 if err != nil { 2017 return nil, err 2018 } 2019 return event.NewSubscription(func(quit <-chan struct{}) error { 2020 defer sub.Unsubscribe() 2021 for { 2022 select { 2023 case log := <-logs: 2024 // New log arrived, parse the event and forward to the user 2025 event := new(CTokenFailure) 2026 if err := _CToken.contract.UnpackLog(event, "Failure", log); err != nil { 2027 return err 2028 } 2029 event.Raw = log 2030 2031 select { 2032 case sink <- event: 2033 case err := <-sub.Err(): 2034 return err 2035 case <-quit: 2036 return nil 2037 } 2038 case err := <-sub.Err(): 2039 return err 2040 case <-quit: 2041 return nil 2042 } 2043 } 2044 }), nil 2045 } 2046 2047 // ParseFailure is a log parse operation binding the contract event 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0. 2048 // 2049 // Solidity: event Failure(uint256 error, uint256 info, uint256 detail) 2050 func (_CToken *CTokenFilterer) ParseFailure(log types.Log) (*CTokenFailure, error) { 2051 event := new(CTokenFailure) 2052 if err := _CToken.contract.UnpackLog(event, "Failure", log); err != nil { 2053 return nil, err 2054 } 2055 return event, nil 2056 } 2057 2058 // CTokenLiquidateBorrowIterator is returned from FilterLiquidateBorrow and is used to iterate over the raw logs and unpacked data for LiquidateBorrow events raised by the CToken contract. 2059 type CTokenLiquidateBorrowIterator struct { 2060 Event *CTokenLiquidateBorrow // Event containing the contract specifics and raw log 2061 2062 contract *bind.BoundContract // Generic contract to use for unpacking event data 2063 event string // Event name to use for unpacking event data 2064 2065 logs chan types.Log // Log channel receiving the found contract events 2066 sub ethereum.Subscription // Subscription for errors, completion and termination 2067 done bool // Whether the subscription completed delivering logs 2068 fail error // Occurred error to stop iteration 2069 } 2070 2071 // Next advances the iterator to the subsequent event, returning whether there 2072 // are any more events found. In case of a retrieval or parsing error, false is 2073 // returned and Error() can be queried for the exact failure. 2074 func (it *CTokenLiquidateBorrowIterator) Next() bool { 2075 // If the iterator failed, stop iterating 2076 if it.fail != nil { 2077 return false 2078 } 2079 // If the iterator completed, deliver directly whatever's available 2080 if it.done { 2081 select { 2082 case log := <-it.logs: 2083 it.Event = new(CTokenLiquidateBorrow) 2084 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2085 it.fail = err 2086 return false 2087 } 2088 it.Event.Raw = log 2089 return true 2090 2091 default: 2092 return false 2093 } 2094 } 2095 // Iterator still in progress, wait for either a data or an error event 2096 select { 2097 case log := <-it.logs: 2098 it.Event = new(CTokenLiquidateBorrow) 2099 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2100 it.fail = err 2101 return false 2102 } 2103 it.Event.Raw = log 2104 return true 2105 2106 case err := <-it.sub.Err(): 2107 it.done = true 2108 it.fail = err 2109 return it.Next() 2110 } 2111 } 2112 2113 // Error returns any retrieval or parsing error occurred during filtering. 2114 func (it *CTokenLiquidateBorrowIterator) Error() error { 2115 return it.fail 2116 } 2117 2118 // Close terminates the iteration process, releasing any pending underlying 2119 // resources. 2120 func (it *CTokenLiquidateBorrowIterator) Close() error { 2121 it.sub.Unsubscribe() 2122 return nil 2123 } 2124 2125 // CTokenLiquidateBorrow represents a LiquidateBorrow event raised by the CToken contract. 2126 type CTokenLiquidateBorrow struct { 2127 Liquidator common.Address 2128 Borrower common.Address 2129 RepayAmount *big.Int 2130 CTokenCollateral common.Address 2131 SeizeTokens *big.Int 2132 Raw types.Log // Blockchain specific contextual infos 2133 } 2134 2135 // FilterLiquidateBorrow is a free log retrieval operation binding the contract event 0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52. 2136 // 2137 // Solidity: event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens) 2138 func (_CToken *CTokenFilterer) FilterLiquidateBorrow(opts *bind.FilterOpts) (*CTokenLiquidateBorrowIterator, error) { 2139 2140 logs, sub, err := _CToken.contract.FilterLogs(opts, "LiquidateBorrow") 2141 if err != nil { 2142 return nil, err 2143 } 2144 return &CTokenLiquidateBorrowIterator{contract: _CToken.contract, event: "LiquidateBorrow", logs: logs, sub: sub}, nil 2145 } 2146 2147 // WatchLiquidateBorrow is a free log subscription operation binding the contract event 0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52. 2148 // 2149 // Solidity: event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens) 2150 func (_CToken *CTokenFilterer) WatchLiquidateBorrow(opts *bind.WatchOpts, sink chan<- *CTokenLiquidateBorrow) (event.Subscription, error) { 2151 2152 logs, sub, err := _CToken.contract.WatchLogs(opts, "LiquidateBorrow") 2153 if err != nil { 2154 return nil, err 2155 } 2156 return event.NewSubscription(func(quit <-chan struct{}) error { 2157 defer sub.Unsubscribe() 2158 for { 2159 select { 2160 case log := <-logs: 2161 // New log arrived, parse the event and forward to the user 2162 event := new(CTokenLiquidateBorrow) 2163 if err := _CToken.contract.UnpackLog(event, "LiquidateBorrow", log); err != nil { 2164 return err 2165 } 2166 event.Raw = log 2167 2168 select { 2169 case sink <- event: 2170 case err := <-sub.Err(): 2171 return err 2172 case <-quit: 2173 return nil 2174 } 2175 case err := <-sub.Err(): 2176 return err 2177 case <-quit: 2178 return nil 2179 } 2180 } 2181 }), nil 2182 } 2183 2184 // ParseLiquidateBorrow is a log parse operation binding the contract event 0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52. 2185 // 2186 // Solidity: event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens) 2187 func (_CToken *CTokenFilterer) ParseLiquidateBorrow(log types.Log) (*CTokenLiquidateBorrow, error) { 2188 event := new(CTokenLiquidateBorrow) 2189 if err := _CToken.contract.UnpackLog(event, "LiquidateBorrow", log); err != nil { 2190 return nil, err 2191 } 2192 return event, nil 2193 } 2194 2195 // CTokenMintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the CToken contract. 2196 type CTokenMintIterator struct { 2197 Event *CTokenMint // Event containing the contract specifics and raw log 2198 2199 contract *bind.BoundContract // Generic contract to use for unpacking event data 2200 event string // Event name to use for unpacking event data 2201 2202 logs chan types.Log // Log channel receiving the found contract events 2203 sub ethereum.Subscription // Subscription for errors, completion and termination 2204 done bool // Whether the subscription completed delivering logs 2205 fail error // Occurred error to stop iteration 2206 } 2207 2208 // Next advances the iterator to the subsequent event, returning whether there 2209 // are any more events found. In case of a retrieval or parsing error, false is 2210 // returned and Error() can be queried for the exact failure. 2211 func (it *CTokenMintIterator) Next() bool { 2212 // If the iterator failed, stop iterating 2213 if it.fail != nil { 2214 return false 2215 } 2216 // If the iterator completed, deliver directly whatever's available 2217 if it.done { 2218 select { 2219 case log := <-it.logs: 2220 it.Event = new(CTokenMint) 2221 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2222 it.fail = err 2223 return false 2224 } 2225 it.Event.Raw = log 2226 return true 2227 2228 default: 2229 return false 2230 } 2231 } 2232 // Iterator still in progress, wait for either a data or an error event 2233 select { 2234 case log := <-it.logs: 2235 it.Event = new(CTokenMint) 2236 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2237 it.fail = err 2238 return false 2239 } 2240 it.Event.Raw = log 2241 return true 2242 2243 case err := <-it.sub.Err(): 2244 it.done = true 2245 it.fail = err 2246 return it.Next() 2247 } 2248 } 2249 2250 // Error returns any retrieval or parsing error occurred during filtering. 2251 func (it *CTokenMintIterator) Error() error { 2252 return it.fail 2253 } 2254 2255 // Close terminates the iteration process, releasing any pending underlying 2256 // resources. 2257 func (it *CTokenMintIterator) Close() error { 2258 it.sub.Unsubscribe() 2259 return nil 2260 } 2261 2262 // CTokenMint represents a Mint event raised by the CToken contract. 2263 type CTokenMint struct { 2264 Minter common.Address 2265 MintAmount *big.Int 2266 MintTokens *big.Int 2267 Raw types.Log // Blockchain specific contextual infos 2268 } 2269 2270 // FilterMint is a free log retrieval operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f. 2271 // 2272 // Solidity: event Mint(address minter, uint256 mintAmount, uint256 mintTokens) 2273 func (_CToken *CTokenFilterer) FilterMint(opts *bind.FilterOpts) (*CTokenMintIterator, error) { 2274 2275 logs, sub, err := _CToken.contract.FilterLogs(opts, "Mint") 2276 if err != nil { 2277 return nil, err 2278 } 2279 return &CTokenMintIterator{contract: _CToken.contract, event: "Mint", logs: logs, sub: sub}, nil 2280 } 2281 2282 // WatchMint is a free log subscription operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f. 2283 // 2284 // Solidity: event Mint(address minter, uint256 mintAmount, uint256 mintTokens) 2285 func (_CToken *CTokenFilterer) WatchMint(opts *bind.WatchOpts, sink chan<- *CTokenMint) (event.Subscription, error) { 2286 2287 logs, sub, err := _CToken.contract.WatchLogs(opts, "Mint") 2288 if err != nil { 2289 return nil, err 2290 } 2291 return event.NewSubscription(func(quit <-chan struct{}) error { 2292 defer sub.Unsubscribe() 2293 for { 2294 select { 2295 case log := <-logs: 2296 // New log arrived, parse the event and forward to the user 2297 event := new(CTokenMint) 2298 if err := _CToken.contract.UnpackLog(event, "Mint", log); err != nil { 2299 return err 2300 } 2301 event.Raw = log 2302 2303 select { 2304 case sink <- event: 2305 case err := <-sub.Err(): 2306 return err 2307 case <-quit: 2308 return nil 2309 } 2310 case err := <-sub.Err(): 2311 return err 2312 case <-quit: 2313 return nil 2314 } 2315 } 2316 }), nil 2317 } 2318 2319 // ParseMint is a log parse operation binding the contract event 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f. 2320 // 2321 // Solidity: event Mint(address minter, uint256 mintAmount, uint256 mintTokens) 2322 func (_CToken *CTokenFilterer) ParseMint(log types.Log) (*CTokenMint, error) { 2323 event := new(CTokenMint) 2324 if err := _CToken.contract.UnpackLog(event, "Mint", log); err != nil { 2325 return nil, err 2326 } 2327 return event, nil 2328 } 2329 2330 // CTokenNewAdminIterator is returned from FilterNewAdmin and is used to iterate over the raw logs and unpacked data for NewAdmin events raised by the CToken contract. 2331 type CTokenNewAdminIterator struct { 2332 Event *CTokenNewAdmin // Event containing the contract specifics and raw log 2333 2334 contract *bind.BoundContract // Generic contract to use for unpacking event data 2335 event string // Event name to use for unpacking event data 2336 2337 logs chan types.Log // Log channel receiving the found contract events 2338 sub ethereum.Subscription // Subscription for errors, completion and termination 2339 done bool // Whether the subscription completed delivering logs 2340 fail error // Occurred error to stop iteration 2341 } 2342 2343 // Next advances the iterator to the subsequent event, returning whether there 2344 // are any more events found. In case of a retrieval or parsing error, false is 2345 // returned and Error() can be queried for the exact failure. 2346 func (it *CTokenNewAdminIterator) Next() bool { 2347 // If the iterator failed, stop iterating 2348 if it.fail != nil { 2349 return false 2350 } 2351 // If the iterator completed, deliver directly whatever's available 2352 if it.done { 2353 select { 2354 case log := <-it.logs: 2355 it.Event = new(CTokenNewAdmin) 2356 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2357 it.fail = err 2358 return false 2359 } 2360 it.Event.Raw = log 2361 return true 2362 2363 default: 2364 return false 2365 } 2366 } 2367 // Iterator still in progress, wait for either a data or an error event 2368 select { 2369 case log := <-it.logs: 2370 it.Event = new(CTokenNewAdmin) 2371 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2372 it.fail = err 2373 return false 2374 } 2375 it.Event.Raw = log 2376 return true 2377 2378 case err := <-it.sub.Err(): 2379 it.done = true 2380 it.fail = err 2381 return it.Next() 2382 } 2383 } 2384 2385 // Error returns any retrieval or parsing error occurred during filtering. 2386 func (it *CTokenNewAdminIterator) Error() error { 2387 return it.fail 2388 } 2389 2390 // Close terminates the iteration process, releasing any pending underlying 2391 // resources. 2392 func (it *CTokenNewAdminIterator) Close() error { 2393 it.sub.Unsubscribe() 2394 return nil 2395 } 2396 2397 // CTokenNewAdmin represents a NewAdmin event raised by the CToken contract. 2398 type CTokenNewAdmin struct { 2399 OldAdmin common.Address 2400 NewAdmin common.Address 2401 Raw types.Log // Blockchain specific contextual infos 2402 } 2403 2404 // FilterNewAdmin is a free log retrieval operation binding the contract event 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc. 2405 // 2406 // Solidity: event NewAdmin(address oldAdmin, address newAdmin) 2407 func (_CToken *CTokenFilterer) FilterNewAdmin(opts *bind.FilterOpts) (*CTokenNewAdminIterator, error) { 2408 2409 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewAdmin") 2410 if err != nil { 2411 return nil, err 2412 } 2413 return &CTokenNewAdminIterator{contract: _CToken.contract, event: "NewAdmin", logs: logs, sub: sub}, nil 2414 } 2415 2416 // WatchNewAdmin is a free log subscription operation binding the contract event 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc. 2417 // 2418 // Solidity: event NewAdmin(address oldAdmin, address newAdmin) 2419 func (_CToken *CTokenFilterer) WatchNewAdmin(opts *bind.WatchOpts, sink chan<- *CTokenNewAdmin) (event.Subscription, error) { 2420 2421 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewAdmin") 2422 if err != nil { 2423 return nil, err 2424 } 2425 return event.NewSubscription(func(quit <-chan struct{}) error { 2426 defer sub.Unsubscribe() 2427 for { 2428 select { 2429 case log := <-logs: 2430 // New log arrived, parse the event and forward to the user 2431 event := new(CTokenNewAdmin) 2432 if err := _CToken.contract.UnpackLog(event, "NewAdmin", log); err != nil { 2433 return err 2434 } 2435 event.Raw = log 2436 2437 select { 2438 case sink <- event: 2439 case err := <-sub.Err(): 2440 return err 2441 case <-quit: 2442 return nil 2443 } 2444 case err := <-sub.Err(): 2445 return err 2446 case <-quit: 2447 return nil 2448 } 2449 } 2450 }), nil 2451 } 2452 2453 // ParseNewAdmin is a log parse operation binding the contract event 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc. 2454 // 2455 // Solidity: event NewAdmin(address oldAdmin, address newAdmin) 2456 func (_CToken *CTokenFilterer) ParseNewAdmin(log types.Log) (*CTokenNewAdmin, error) { 2457 event := new(CTokenNewAdmin) 2458 if err := _CToken.contract.UnpackLog(event, "NewAdmin", log); err != nil { 2459 return nil, err 2460 } 2461 return event, nil 2462 } 2463 2464 // CTokenNewComptrollerIterator is returned from FilterNewComptroller and is used to iterate over the raw logs and unpacked data for NewComptroller events raised by the CToken contract. 2465 type CTokenNewComptrollerIterator struct { 2466 Event *CTokenNewComptroller // Event containing the contract specifics and raw log 2467 2468 contract *bind.BoundContract // Generic contract to use for unpacking event data 2469 event string // Event name to use for unpacking event data 2470 2471 logs chan types.Log // Log channel receiving the found contract events 2472 sub ethereum.Subscription // Subscription for errors, completion and termination 2473 done bool // Whether the subscription completed delivering logs 2474 fail error // Occurred error to stop iteration 2475 } 2476 2477 // Next advances the iterator to the subsequent event, returning whether there 2478 // are any more events found. In case of a retrieval or parsing error, false is 2479 // returned and Error() can be queried for the exact failure. 2480 func (it *CTokenNewComptrollerIterator) Next() bool { 2481 // If the iterator failed, stop iterating 2482 if it.fail != nil { 2483 return false 2484 } 2485 // If the iterator completed, deliver directly whatever's available 2486 if it.done { 2487 select { 2488 case log := <-it.logs: 2489 it.Event = new(CTokenNewComptroller) 2490 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2491 it.fail = err 2492 return false 2493 } 2494 it.Event.Raw = log 2495 return true 2496 2497 default: 2498 return false 2499 } 2500 } 2501 // Iterator still in progress, wait for either a data or an error event 2502 select { 2503 case log := <-it.logs: 2504 it.Event = new(CTokenNewComptroller) 2505 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2506 it.fail = err 2507 return false 2508 } 2509 it.Event.Raw = log 2510 return true 2511 2512 case err := <-it.sub.Err(): 2513 it.done = true 2514 it.fail = err 2515 return it.Next() 2516 } 2517 } 2518 2519 // Error returns any retrieval or parsing error occurred during filtering. 2520 func (it *CTokenNewComptrollerIterator) Error() error { 2521 return it.fail 2522 } 2523 2524 // Close terminates the iteration process, releasing any pending underlying 2525 // resources. 2526 func (it *CTokenNewComptrollerIterator) Close() error { 2527 it.sub.Unsubscribe() 2528 return nil 2529 } 2530 2531 // CTokenNewComptroller represents a NewComptroller event raised by the CToken contract. 2532 type CTokenNewComptroller struct { 2533 OldComptroller common.Address 2534 NewComptroller common.Address 2535 Raw types.Log // Blockchain specific contextual infos 2536 } 2537 2538 // FilterNewComptroller is a free log retrieval operation binding the contract event 0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d. 2539 // 2540 // Solidity: event NewComptroller(address oldComptroller, address newComptroller) 2541 func (_CToken *CTokenFilterer) FilterNewComptroller(opts *bind.FilterOpts) (*CTokenNewComptrollerIterator, error) { 2542 2543 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewComptroller") 2544 if err != nil { 2545 return nil, err 2546 } 2547 return &CTokenNewComptrollerIterator{contract: _CToken.contract, event: "NewComptroller", logs: logs, sub: sub}, nil 2548 } 2549 2550 // WatchNewComptroller is a free log subscription operation binding the contract event 0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d. 2551 // 2552 // Solidity: event NewComptroller(address oldComptroller, address newComptroller) 2553 func (_CToken *CTokenFilterer) WatchNewComptroller(opts *bind.WatchOpts, sink chan<- *CTokenNewComptroller) (event.Subscription, error) { 2554 2555 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewComptroller") 2556 if err != nil { 2557 return nil, err 2558 } 2559 return event.NewSubscription(func(quit <-chan struct{}) error { 2560 defer sub.Unsubscribe() 2561 for { 2562 select { 2563 case log := <-logs: 2564 // New log arrived, parse the event and forward to the user 2565 event := new(CTokenNewComptroller) 2566 if err := _CToken.contract.UnpackLog(event, "NewComptroller", log); err != nil { 2567 return err 2568 } 2569 event.Raw = log 2570 2571 select { 2572 case sink <- event: 2573 case err := <-sub.Err(): 2574 return err 2575 case <-quit: 2576 return nil 2577 } 2578 case err := <-sub.Err(): 2579 return err 2580 case <-quit: 2581 return nil 2582 } 2583 } 2584 }), nil 2585 } 2586 2587 // ParseNewComptroller is a log parse operation binding the contract event 0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d. 2588 // 2589 // Solidity: event NewComptroller(address oldComptroller, address newComptroller) 2590 func (_CToken *CTokenFilterer) ParseNewComptroller(log types.Log) (*CTokenNewComptroller, error) { 2591 event := new(CTokenNewComptroller) 2592 if err := _CToken.contract.UnpackLog(event, "NewComptroller", log); err != nil { 2593 return nil, err 2594 } 2595 return event, nil 2596 } 2597 2598 // CTokenNewImplementationIterator is returned from FilterNewImplementation and is used to iterate over the raw logs and unpacked data for NewImplementation events raised by the CToken contract. 2599 type CTokenNewImplementationIterator struct { 2600 Event *CTokenNewImplementation // Event containing the contract specifics and raw log 2601 2602 contract *bind.BoundContract // Generic contract to use for unpacking event data 2603 event string // Event name to use for unpacking event data 2604 2605 logs chan types.Log // Log channel receiving the found contract events 2606 sub ethereum.Subscription // Subscription for errors, completion and termination 2607 done bool // Whether the subscription completed delivering logs 2608 fail error // Occurred error to stop iteration 2609 } 2610 2611 // Next advances the iterator to the subsequent event, returning whether there 2612 // are any more events found. In case of a retrieval or parsing error, false is 2613 // returned and Error() can be queried for the exact failure. 2614 func (it *CTokenNewImplementationIterator) Next() bool { 2615 // If the iterator failed, stop iterating 2616 if it.fail != nil { 2617 return false 2618 } 2619 // If the iterator completed, deliver directly whatever's available 2620 if it.done { 2621 select { 2622 case log := <-it.logs: 2623 it.Event = new(CTokenNewImplementation) 2624 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2625 it.fail = err 2626 return false 2627 } 2628 it.Event.Raw = log 2629 return true 2630 2631 default: 2632 return false 2633 } 2634 } 2635 // Iterator still in progress, wait for either a data or an error event 2636 select { 2637 case log := <-it.logs: 2638 it.Event = new(CTokenNewImplementation) 2639 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2640 it.fail = err 2641 return false 2642 } 2643 it.Event.Raw = log 2644 return true 2645 2646 case err := <-it.sub.Err(): 2647 it.done = true 2648 it.fail = err 2649 return it.Next() 2650 } 2651 } 2652 2653 // Error returns any retrieval or parsing error occurred during filtering. 2654 func (it *CTokenNewImplementationIterator) Error() error { 2655 return it.fail 2656 } 2657 2658 // Close terminates the iteration process, releasing any pending underlying 2659 // resources. 2660 func (it *CTokenNewImplementationIterator) Close() error { 2661 it.sub.Unsubscribe() 2662 return nil 2663 } 2664 2665 // CTokenNewImplementation represents a NewImplementation event raised by the CToken contract. 2666 type CTokenNewImplementation struct { 2667 OldImplementation common.Address 2668 NewImplementation common.Address 2669 Raw types.Log // Blockchain specific contextual infos 2670 } 2671 2672 // FilterNewImplementation is a free log retrieval operation binding the contract event 0xd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a. 2673 // 2674 // Solidity: event NewImplementation(address oldImplementation, address newImplementation) 2675 func (_CToken *CTokenFilterer) FilterNewImplementation(opts *bind.FilterOpts) (*CTokenNewImplementationIterator, error) { 2676 2677 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewImplementation") 2678 if err != nil { 2679 return nil, err 2680 } 2681 return &CTokenNewImplementationIterator{contract: _CToken.contract, event: "NewImplementation", logs: logs, sub: sub}, nil 2682 } 2683 2684 // WatchNewImplementation is a free log subscription operation binding the contract event 0xd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a. 2685 // 2686 // Solidity: event NewImplementation(address oldImplementation, address newImplementation) 2687 func (_CToken *CTokenFilterer) WatchNewImplementation(opts *bind.WatchOpts, sink chan<- *CTokenNewImplementation) (event.Subscription, error) { 2688 2689 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewImplementation") 2690 if err != nil { 2691 return nil, err 2692 } 2693 return event.NewSubscription(func(quit <-chan struct{}) error { 2694 defer sub.Unsubscribe() 2695 for { 2696 select { 2697 case log := <-logs: 2698 // New log arrived, parse the event and forward to the user 2699 event := new(CTokenNewImplementation) 2700 if err := _CToken.contract.UnpackLog(event, "NewImplementation", log); err != nil { 2701 return err 2702 } 2703 event.Raw = log 2704 2705 select { 2706 case sink <- event: 2707 case err := <-sub.Err(): 2708 return err 2709 case <-quit: 2710 return nil 2711 } 2712 case err := <-sub.Err(): 2713 return err 2714 case <-quit: 2715 return nil 2716 } 2717 } 2718 }), nil 2719 } 2720 2721 // ParseNewImplementation is a log parse operation binding the contract event 0xd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a. 2722 // 2723 // Solidity: event NewImplementation(address oldImplementation, address newImplementation) 2724 func (_CToken *CTokenFilterer) ParseNewImplementation(log types.Log) (*CTokenNewImplementation, error) { 2725 event := new(CTokenNewImplementation) 2726 if err := _CToken.contract.UnpackLog(event, "NewImplementation", log); err != nil { 2727 return nil, err 2728 } 2729 return event, nil 2730 } 2731 2732 // CTokenNewMarketInterestRateModelIterator is returned from FilterNewMarketInterestRateModel and is used to iterate over the raw logs and unpacked data for NewMarketInterestRateModel events raised by the CToken contract. 2733 type CTokenNewMarketInterestRateModelIterator struct { 2734 Event *CTokenNewMarketInterestRateModel // Event containing the contract specifics and raw log 2735 2736 contract *bind.BoundContract // Generic contract to use for unpacking event data 2737 event string // Event name to use for unpacking event data 2738 2739 logs chan types.Log // Log channel receiving the found contract events 2740 sub ethereum.Subscription // Subscription for errors, completion and termination 2741 done bool // Whether the subscription completed delivering logs 2742 fail error // Occurred error to stop iteration 2743 } 2744 2745 // Next advances the iterator to the subsequent event, returning whether there 2746 // are any more events found. In case of a retrieval or parsing error, false is 2747 // returned and Error() can be queried for the exact failure. 2748 func (it *CTokenNewMarketInterestRateModelIterator) Next() bool { 2749 // If the iterator failed, stop iterating 2750 if it.fail != nil { 2751 return false 2752 } 2753 // If the iterator completed, deliver directly whatever's available 2754 if it.done { 2755 select { 2756 case log := <-it.logs: 2757 it.Event = new(CTokenNewMarketInterestRateModel) 2758 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2759 it.fail = err 2760 return false 2761 } 2762 it.Event.Raw = log 2763 return true 2764 2765 default: 2766 return false 2767 } 2768 } 2769 // Iterator still in progress, wait for either a data or an error event 2770 select { 2771 case log := <-it.logs: 2772 it.Event = new(CTokenNewMarketInterestRateModel) 2773 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2774 it.fail = err 2775 return false 2776 } 2777 it.Event.Raw = log 2778 return true 2779 2780 case err := <-it.sub.Err(): 2781 it.done = true 2782 it.fail = err 2783 return it.Next() 2784 } 2785 } 2786 2787 // Error returns any retrieval or parsing error occurred during filtering. 2788 func (it *CTokenNewMarketInterestRateModelIterator) Error() error { 2789 return it.fail 2790 } 2791 2792 // Close terminates the iteration process, releasing any pending underlying 2793 // resources. 2794 func (it *CTokenNewMarketInterestRateModelIterator) Close() error { 2795 it.sub.Unsubscribe() 2796 return nil 2797 } 2798 2799 // CTokenNewMarketInterestRateModel represents a NewMarketInterestRateModel event raised by the CToken contract. 2800 type CTokenNewMarketInterestRateModel struct { 2801 OldInterestRateModel common.Address 2802 NewInterestRateModel common.Address 2803 Raw types.Log // Blockchain specific contextual infos 2804 } 2805 2806 // FilterNewMarketInterestRateModel is a free log retrieval operation binding the contract event 0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926. 2807 // 2808 // Solidity: event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel) 2809 func (_CToken *CTokenFilterer) FilterNewMarketInterestRateModel(opts *bind.FilterOpts) (*CTokenNewMarketInterestRateModelIterator, error) { 2810 2811 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewMarketInterestRateModel") 2812 if err != nil { 2813 return nil, err 2814 } 2815 return &CTokenNewMarketInterestRateModelIterator{contract: _CToken.contract, event: "NewMarketInterestRateModel", logs: logs, sub: sub}, nil 2816 } 2817 2818 // WatchNewMarketInterestRateModel is a free log subscription operation binding the contract event 0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926. 2819 // 2820 // Solidity: event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel) 2821 func (_CToken *CTokenFilterer) WatchNewMarketInterestRateModel(opts *bind.WatchOpts, sink chan<- *CTokenNewMarketInterestRateModel) (event.Subscription, error) { 2822 2823 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewMarketInterestRateModel") 2824 if err != nil { 2825 return nil, err 2826 } 2827 return event.NewSubscription(func(quit <-chan struct{}) error { 2828 defer sub.Unsubscribe() 2829 for { 2830 select { 2831 case log := <-logs: 2832 // New log arrived, parse the event and forward to the user 2833 event := new(CTokenNewMarketInterestRateModel) 2834 if err := _CToken.contract.UnpackLog(event, "NewMarketInterestRateModel", log); err != nil { 2835 return err 2836 } 2837 event.Raw = log 2838 2839 select { 2840 case sink <- event: 2841 case err := <-sub.Err(): 2842 return err 2843 case <-quit: 2844 return nil 2845 } 2846 case err := <-sub.Err(): 2847 return err 2848 case <-quit: 2849 return nil 2850 } 2851 } 2852 }), nil 2853 } 2854 2855 // ParseNewMarketInterestRateModel is a log parse operation binding the contract event 0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926. 2856 // 2857 // Solidity: event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel) 2858 func (_CToken *CTokenFilterer) ParseNewMarketInterestRateModel(log types.Log) (*CTokenNewMarketInterestRateModel, error) { 2859 event := new(CTokenNewMarketInterestRateModel) 2860 if err := _CToken.contract.UnpackLog(event, "NewMarketInterestRateModel", log); err != nil { 2861 return nil, err 2862 } 2863 return event, nil 2864 } 2865 2866 // CTokenNewPendingAdminIterator is returned from FilterNewPendingAdmin and is used to iterate over the raw logs and unpacked data for NewPendingAdmin events raised by the CToken contract. 2867 type CTokenNewPendingAdminIterator struct { 2868 Event *CTokenNewPendingAdmin // Event containing the contract specifics and raw log 2869 2870 contract *bind.BoundContract // Generic contract to use for unpacking event data 2871 event string // Event name to use for unpacking event data 2872 2873 logs chan types.Log // Log channel receiving the found contract events 2874 sub ethereum.Subscription // Subscription for errors, completion and termination 2875 done bool // Whether the subscription completed delivering logs 2876 fail error // Occurred error to stop iteration 2877 } 2878 2879 // Next advances the iterator to the subsequent event, returning whether there 2880 // are any more events found. In case of a retrieval or parsing error, false is 2881 // returned and Error() can be queried for the exact failure. 2882 func (it *CTokenNewPendingAdminIterator) Next() bool { 2883 // If the iterator failed, stop iterating 2884 if it.fail != nil { 2885 return false 2886 } 2887 // If the iterator completed, deliver directly whatever's available 2888 if it.done { 2889 select { 2890 case log := <-it.logs: 2891 it.Event = new(CTokenNewPendingAdmin) 2892 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2893 it.fail = err 2894 return false 2895 } 2896 it.Event.Raw = log 2897 return true 2898 2899 default: 2900 return false 2901 } 2902 } 2903 // Iterator still in progress, wait for either a data or an error event 2904 select { 2905 case log := <-it.logs: 2906 it.Event = new(CTokenNewPendingAdmin) 2907 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2908 it.fail = err 2909 return false 2910 } 2911 it.Event.Raw = log 2912 return true 2913 2914 case err := <-it.sub.Err(): 2915 it.done = true 2916 it.fail = err 2917 return it.Next() 2918 } 2919 } 2920 2921 // Error returns any retrieval or parsing error occurred during filtering. 2922 func (it *CTokenNewPendingAdminIterator) Error() error { 2923 return it.fail 2924 } 2925 2926 // Close terminates the iteration process, releasing any pending underlying 2927 // resources. 2928 func (it *CTokenNewPendingAdminIterator) Close() error { 2929 it.sub.Unsubscribe() 2930 return nil 2931 } 2932 2933 // CTokenNewPendingAdmin represents a NewPendingAdmin event raised by the CToken contract. 2934 type CTokenNewPendingAdmin struct { 2935 OldPendingAdmin common.Address 2936 NewPendingAdmin common.Address 2937 Raw types.Log // Blockchain specific contextual infos 2938 } 2939 2940 // FilterNewPendingAdmin is a free log retrieval operation binding the contract event 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9. 2941 // 2942 // Solidity: event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin) 2943 func (_CToken *CTokenFilterer) FilterNewPendingAdmin(opts *bind.FilterOpts) (*CTokenNewPendingAdminIterator, error) { 2944 2945 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewPendingAdmin") 2946 if err != nil { 2947 return nil, err 2948 } 2949 return &CTokenNewPendingAdminIterator{contract: _CToken.contract, event: "NewPendingAdmin", logs: logs, sub: sub}, nil 2950 } 2951 2952 // WatchNewPendingAdmin is a free log subscription operation binding the contract event 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9. 2953 // 2954 // Solidity: event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin) 2955 func (_CToken *CTokenFilterer) WatchNewPendingAdmin(opts *bind.WatchOpts, sink chan<- *CTokenNewPendingAdmin) (event.Subscription, error) { 2956 2957 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewPendingAdmin") 2958 if err != nil { 2959 return nil, err 2960 } 2961 return event.NewSubscription(func(quit <-chan struct{}) error { 2962 defer sub.Unsubscribe() 2963 for { 2964 select { 2965 case log := <-logs: 2966 // New log arrived, parse the event and forward to the user 2967 event := new(CTokenNewPendingAdmin) 2968 if err := _CToken.contract.UnpackLog(event, "NewPendingAdmin", log); err != nil { 2969 return err 2970 } 2971 event.Raw = log 2972 2973 select { 2974 case sink <- event: 2975 case err := <-sub.Err(): 2976 return err 2977 case <-quit: 2978 return nil 2979 } 2980 case err := <-sub.Err(): 2981 return err 2982 case <-quit: 2983 return nil 2984 } 2985 } 2986 }), nil 2987 } 2988 2989 // ParseNewPendingAdmin is a log parse operation binding the contract event 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9. 2990 // 2991 // Solidity: event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin) 2992 func (_CToken *CTokenFilterer) ParseNewPendingAdmin(log types.Log) (*CTokenNewPendingAdmin, error) { 2993 event := new(CTokenNewPendingAdmin) 2994 if err := _CToken.contract.UnpackLog(event, "NewPendingAdmin", log); err != nil { 2995 return nil, err 2996 } 2997 return event, nil 2998 } 2999 3000 // CTokenNewReserveFactorIterator is returned from FilterNewReserveFactor and is used to iterate over the raw logs and unpacked data for NewReserveFactor events raised by the CToken contract. 3001 type CTokenNewReserveFactorIterator struct { 3002 Event *CTokenNewReserveFactor // Event containing the contract specifics and raw log 3003 3004 contract *bind.BoundContract // Generic contract to use for unpacking event data 3005 event string // Event name to use for unpacking event data 3006 3007 logs chan types.Log // Log channel receiving the found contract events 3008 sub ethereum.Subscription // Subscription for errors, completion and termination 3009 done bool // Whether the subscription completed delivering logs 3010 fail error // Occurred error to stop iteration 3011 } 3012 3013 // Next advances the iterator to the subsequent event, returning whether there 3014 // are any more events found. In case of a retrieval or parsing error, false is 3015 // returned and Error() can be queried for the exact failure. 3016 func (it *CTokenNewReserveFactorIterator) Next() bool { 3017 // If the iterator failed, stop iterating 3018 if it.fail != nil { 3019 return false 3020 } 3021 // If the iterator completed, deliver directly whatever's available 3022 if it.done { 3023 select { 3024 case log := <-it.logs: 3025 it.Event = new(CTokenNewReserveFactor) 3026 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3027 it.fail = err 3028 return false 3029 } 3030 it.Event.Raw = log 3031 return true 3032 3033 default: 3034 return false 3035 } 3036 } 3037 // Iterator still in progress, wait for either a data or an error event 3038 select { 3039 case log := <-it.logs: 3040 it.Event = new(CTokenNewReserveFactor) 3041 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3042 it.fail = err 3043 return false 3044 } 3045 it.Event.Raw = log 3046 return true 3047 3048 case err := <-it.sub.Err(): 3049 it.done = true 3050 it.fail = err 3051 return it.Next() 3052 } 3053 } 3054 3055 // Error returns any retrieval or parsing error occurred during filtering. 3056 func (it *CTokenNewReserveFactorIterator) Error() error { 3057 return it.fail 3058 } 3059 3060 // Close terminates the iteration process, releasing any pending underlying 3061 // resources. 3062 func (it *CTokenNewReserveFactorIterator) Close() error { 3063 it.sub.Unsubscribe() 3064 return nil 3065 } 3066 3067 // CTokenNewReserveFactor represents a NewReserveFactor event raised by the CToken contract. 3068 type CTokenNewReserveFactor struct { 3069 OldReserveFactorMantissa *big.Int 3070 NewReserveFactorMantissa *big.Int 3071 Raw types.Log // Blockchain specific contextual infos 3072 } 3073 3074 // FilterNewReserveFactor is a free log retrieval operation binding the contract event 0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460. 3075 // 3076 // Solidity: event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa) 3077 func (_CToken *CTokenFilterer) FilterNewReserveFactor(opts *bind.FilterOpts) (*CTokenNewReserveFactorIterator, error) { 3078 3079 logs, sub, err := _CToken.contract.FilterLogs(opts, "NewReserveFactor") 3080 if err != nil { 3081 return nil, err 3082 } 3083 return &CTokenNewReserveFactorIterator{contract: _CToken.contract, event: "NewReserveFactor", logs: logs, sub: sub}, nil 3084 } 3085 3086 // WatchNewReserveFactor is a free log subscription operation binding the contract event 0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460. 3087 // 3088 // Solidity: event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa) 3089 func (_CToken *CTokenFilterer) WatchNewReserveFactor(opts *bind.WatchOpts, sink chan<- *CTokenNewReserveFactor) (event.Subscription, error) { 3090 3091 logs, sub, err := _CToken.contract.WatchLogs(opts, "NewReserveFactor") 3092 if err != nil { 3093 return nil, err 3094 } 3095 return event.NewSubscription(func(quit <-chan struct{}) error { 3096 defer sub.Unsubscribe() 3097 for { 3098 select { 3099 case log := <-logs: 3100 // New log arrived, parse the event and forward to the user 3101 event := new(CTokenNewReserveFactor) 3102 if err := _CToken.contract.UnpackLog(event, "NewReserveFactor", log); err != nil { 3103 return err 3104 } 3105 event.Raw = log 3106 3107 select { 3108 case sink <- event: 3109 case err := <-sub.Err(): 3110 return err 3111 case <-quit: 3112 return nil 3113 } 3114 case err := <-sub.Err(): 3115 return err 3116 case <-quit: 3117 return nil 3118 } 3119 } 3120 }), nil 3121 } 3122 3123 // ParseNewReserveFactor is a log parse operation binding the contract event 0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460. 3124 // 3125 // Solidity: event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa) 3126 func (_CToken *CTokenFilterer) ParseNewReserveFactor(log types.Log) (*CTokenNewReserveFactor, error) { 3127 event := new(CTokenNewReserveFactor) 3128 if err := _CToken.contract.UnpackLog(event, "NewReserveFactor", log); err != nil { 3129 return nil, err 3130 } 3131 return event, nil 3132 } 3133 3134 // CTokenRedeemIterator is returned from FilterRedeem and is used to iterate over the raw logs and unpacked data for Redeem events raised by the CToken contract. 3135 type CTokenRedeemIterator struct { 3136 Event *CTokenRedeem // Event containing the contract specifics and raw log 3137 3138 contract *bind.BoundContract // Generic contract to use for unpacking event data 3139 event string // Event name to use for unpacking event data 3140 3141 logs chan types.Log // Log channel receiving the found contract events 3142 sub ethereum.Subscription // Subscription for errors, completion and termination 3143 done bool // Whether the subscription completed delivering logs 3144 fail error // Occurred error to stop iteration 3145 } 3146 3147 // Next advances the iterator to the subsequent event, returning whether there 3148 // are any more events found. In case of a retrieval or parsing error, false is 3149 // returned and Error() can be queried for the exact failure. 3150 func (it *CTokenRedeemIterator) Next() bool { 3151 // If the iterator failed, stop iterating 3152 if it.fail != nil { 3153 return false 3154 } 3155 // If the iterator completed, deliver directly whatever's available 3156 if it.done { 3157 select { 3158 case log := <-it.logs: 3159 it.Event = new(CTokenRedeem) 3160 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3161 it.fail = err 3162 return false 3163 } 3164 it.Event.Raw = log 3165 return true 3166 3167 default: 3168 return false 3169 } 3170 } 3171 // Iterator still in progress, wait for either a data or an error event 3172 select { 3173 case log := <-it.logs: 3174 it.Event = new(CTokenRedeem) 3175 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3176 it.fail = err 3177 return false 3178 } 3179 it.Event.Raw = log 3180 return true 3181 3182 case err := <-it.sub.Err(): 3183 it.done = true 3184 it.fail = err 3185 return it.Next() 3186 } 3187 } 3188 3189 // Error returns any retrieval or parsing error occurred during filtering. 3190 func (it *CTokenRedeemIterator) Error() error { 3191 return it.fail 3192 } 3193 3194 // Close terminates the iteration process, releasing any pending underlying 3195 // resources. 3196 func (it *CTokenRedeemIterator) Close() error { 3197 it.sub.Unsubscribe() 3198 return nil 3199 } 3200 3201 // CTokenRedeem represents a Redeem event raised by the CToken contract. 3202 type CTokenRedeem struct { 3203 Redeemer common.Address 3204 RedeemAmount *big.Int 3205 RedeemTokens *big.Int 3206 Raw types.Log // Blockchain specific contextual infos 3207 } 3208 3209 // FilterRedeem is a free log retrieval operation binding the contract event 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929. 3210 // 3211 // Solidity: event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens) 3212 func (_CToken *CTokenFilterer) FilterRedeem(opts *bind.FilterOpts) (*CTokenRedeemIterator, error) { 3213 3214 logs, sub, err := _CToken.contract.FilterLogs(opts, "Redeem") 3215 if err != nil { 3216 return nil, err 3217 } 3218 return &CTokenRedeemIterator{contract: _CToken.contract, event: "Redeem", logs: logs, sub: sub}, nil 3219 } 3220 3221 // WatchRedeem is a free log subscription operation binding the contract event 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929. 3222 // 3223 // Solidity: event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens) 3224 func (_CToken *CTokenFilterer) WatchRedeem(opts *bind.WatchOpts, sink chan<- *CTokenRedeem) (event.Subscription, error) { 3225 3226 logs, sub, err := _CToken.contract.WatchLogs(opts, "Redeem") 3227 if err != nil { 3228 return nil, err 3229 } 3230 return event.NewSubscription(func(quit <-chan struct{}) error { 3231 defer sub.Unsubscribe() 3232 for { 3233 select { 3234 case log := <-logs: 3235 // New log arrived, parse the event and forward to the user 3236 event := new(CTokenRedeem) 3237 if err := _CToken.contract.UnpackLog(event, "Redeem", log); err != nil { 3238 return err 3239 } 3240 event.Raw = log 3241 3242 select { 3243 case sink <- event: 3244 case err := <-sub.Err(): 3245 return err 3246 case <-quit: 3247 return nil 3248 } 3249 case err := <-sub.Err(): 3250 return err 3251 case <-quit: 3252 return nil 3253 } 3254 } 3255 }), nil 3256 } 3257 3258 // ParseRedeem is a log parse operation binding the contract event 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929. 3259 // 3260 // Solidity: event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens) 3261 func (_CToken *CTokenFilterer) ParseRedeem(log types.Log) (*CTokenRedeem, error) { 3262 event := new(CTokenRedeem) 3263 if err := _CToken.contract.UnpackLog(event, "Redeem", log); err != nil { 3264 return nil, err 3265 } 3266 return event, nil 3267 } 3268 3269 // CTokenRepayBorrowIterator is returned from FilterRepayBorrow and is used to iterate over the raw logs and unpacked data for RepayBorrow events raised by the CToken contract. 3270 type CTokenRepayBorrowIterator struct { 3271 Event *CTokenRepayBorrow // Event containing the contract specifics and raw log 3272 3273 contract *bind.BoundContract // Generic contract to use for unpacking event data 3274 event string // Event name to use for unpacking event data 3275 3276 logs chan types.Log // Log channel receiving the found contract events 3277 sub ethereum.Subscription // Subscription for errors, completion and termination 3278 done bool // Whether the subscription completed delivering logs 3279 fail error // Occurred error to stop iteration 3280 } 3281 3282 // Next advances the iterator to the subsequent event, returning whether there 3283 // are any more events found. In case of a retrieval or parsing error, false is 3284 // returned and Error() can be queried for the exact failure. 3285 func (it *CTokenRepayBorrowIterator) Next() bool { 3286 // If the iterator failed, stop iterating 3287 if it.fail != nil { 3288 return false 3289 } 3290 // If the iterator completed, deliver directly whatever's available 3291 if it.done { 3292 select { 3293 case log := <-it.logs: 3294 it.Event = new(CTokenRepayBorrow) 3295 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3296 it.fail = err 3297 return false 3298 } 3299 it.Event.Raw = log 3300 return true 3301 3302 default: 3303 return false 3304 } 3305 } 3306 // Iterator still in progress, wait for either a data or an error event 3307 select { 3308 case log := <-it.logs: 3309 it.Event = new(CTokenRepayBorrow) 3310 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3311 it.fail = err 3312 return false 3313 } 3314 it.Event.Raw = log 3315 return true 3316 3317 case err := <-it.sub.Err(): 3318 it.done = true 3319 it.fail = err 3320 return it.Next() 3321 } 3322 } 3323 3324 // Error returns any retrieval or parsing error occurred during filtering. 3325 func (it *CTokenRepayBorrowIterator) Error() error { 3326 return it.fail 3327 } 3328 3329 // Close terminates the iteration process, releasing any pending underlying 3330 // resources. 3331 func (it *CTokenRepayBorrowIterator) Close() error { 3332 it.sub.Unsubscribe() 3333 return nil 3334 } 3335 3336 // CTokenRepayBorrow represents a RepayBorrow event raised by the CToken contract. 3337 type CTokenRepayBorrow struct { 3338 Payer common.Address 3339 Borrower common.Address 3340 RepayAmount *big.Int 3341 AccountBorrows *big.Int 3342 TotalBorrows *big.Int 3343 Raw types.Log // Blockchain specific contextual infos 3344 } 3345 3346 // FilterRepayBorrow is a free log retrieval operation binding the contract event 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1. 3347 // 3348 // Solidity: event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows) 3349 func (_CToken *CTokenFilterer) FilterRepayBorrow(opts *bind.FilterOpts) (*CTokenRepayBorrowIterator, error) { 3350 3351 logs, sub, err := _CToken.contract.FilterLogs(opts, "RepayBorrow") 3352 if err != nil { 3353 return nil, err 3354 } 3355 return &CTokenRepayBorrowIterator{contract: _CToken.contract, event: "RepayBorrow", logs: logs, sub: sub}, nil 3356 } 3357 3358 // WatchRepayBorrow is a free log subscription operation binding the contract event 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1. 3359 // 3360 // Solidity: event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows) 3361 func (_CToken *CTokenFilterer) WatchRepayBorrow(opts *bind.WatchOpts, sink chan<- *CTokenRepayBorrow) (event.Subscription, error) { 3362 3363 logs, sub, err := _CToken.contract.WatchLogs(opts, "RepayBorrow") 3364 if err != nil { 3365 return nil, err 3366 } 3367 return event.NewSubscription(func(quit <-chan struct{}) error { 3368 defer sub.Unsubscribe() 3369 for { 3370 select { 3371 case log := <-logs: 3372 // New log arrived, parse the event and forward to the user 3373 event := new(CTokenRepayBorrow) 3374 if err := _CToken.contract.UnpackLog(event, "RepayBorrow", log); err != nil { 3375 return err 3376 } 3377 event.Raw = log 3378 3379 select { 3380 case sink <- event: 3381 case err := <-sub.Err(): 3382 return err 3383 case <-quit: 3384 return nil 3385 } 3386 case err := <-sub.Err(): 3387 return err 3388 case <-quit: 3389 return nil 3390 } 3391 } 3392 }), nil 3393 } 3394 3395 // ParseRepayBorrow is a log parse operation binding the contract event 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1. 3396 // 3397 // Solidity: event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows) 3398 func (_CToken *CTokenFilterer) ParseRepayBorrow(log types.Log) (*CTokenRepayBorrow, error) { 3399 event := new(CTokenRepayBorrow) 3400 if err := _CToken.contract.UnpackLog(event, "RepayBorrow", log); err != nil { 3401 return nil, err 3402 } 3403 return event, nil 3404 } 3405 3406 // CTokenReservesAddedIterator is returned from FilterReservesAdded and is used to iterate over the raw logs and unpacked data for ReservesAdded events raised by the CToken contract. 3407 type CTokenReservesAddedIterator struct { 3408 Event *CTokenReservesAdded // Event containing the contract specifics and raw log 3409 3410 contract *bind.BoundContract // Generic contract to use for unpacking event data 3411 event string // Event name to use for unpacking event data 3412 3413 logs chan types.Log // Log channel receiving the found contract events 3414 sub ethereum.Subscription // Subscription for errors, completion and termination 3415 done bool // Whether the subscription completed delivering logs 3416 fail error // Occurred error to stop iteration 3417 } 3418 3419 // Next advances the iterator to the subsequent event, returning whether there 3420 // are any more events found. In case of a retrieval or parsing error, false is 3421 // returned and Error() can be queried for the exact failure. 3422 func (it *CTokenReservesAddedIterator) Next() bool { 3423 // If the iterator failed, stop iterating 3424 if it.fail != nil { 3425 return false 3426 } 3427 // If the iterator completed, deliver directly whatever's available 3428 if it.done { 3429 select { 3430 case log := <-it.logs: 3431 it.Event = new(CTokenReservesAdded) 3432 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3433 it.fail = err 3434 return false 3435 } 3436 it.Event.Raw = log 3437 return true 3438 3439 default: 3440 return false 3441 } 3442 } 3443 // Iterator still in progress, wait for either a data or an error event 3444 select { 3445 case log := <-it.logs: 3446 it.Event = new(CTokenReservesAdded) 3447 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3448 it.fail = err 3449 return false 3450 } 3451 it.Event.Raw = log 3452 return true 3453 3454 case err := <-it.sub.Err(): 3455 it.done = true 3456 it.fail = err 3457 return it.Next() 3458 } 3459 } 3460 3461 // Error returns any retrieval or parsing error occurred during filtering. 3462 func (it *CTokenReservesAddedIterator) Error() error { 3463 return it.fail 3464 } 3465 3466 // Close terminates the iteration process, releasing any pending underlying 3467 // resources. 3468 func (it *CTokenReservesAddedIterator) Close() error { 3469 it.sub.Unsubscribe() 3470 return nil 3471 } 3472 3473 // CTokenReservesAdded represents a ReservesAdded event raised by the CToken contract. 3474 type CTokenReservesAdded struct { 3475 Benefactor common.Address 3476 AddAmount *big.Int 3477 NewTotalReserves *big.Int 3478 Raw types.Log // Blockchain specific contextual infos 3479 } 3480 3481 // FilterReservesAdded is a free log retrieval operation binding the contract event 0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5. 3482 // 3483 // Solidity: event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves) 3484 func (_CToken *CTokenFilterer) FilterReservesAdded(opts *bind.FilterOpts) (*CTokenReservesAddedIterator, error) { 3485 3486 logs, sub, err := _CToken.contract.FilterLogs(opts, "ReservesAdded") 3487 if err != nil { 3488 return nil, err 3489 } 3490 return &CTokenReservesAddedIterator{contract: _CToken.contract, event: "ReservesAdded", logs: logs, sub: sub}, nil 3491 } 3492 3493 // WatchReservesAdded is a free log subscription operation binding the contract event 0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5. 3494 // 3495 // Solidity: event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves) 3496 func (_CToken *CTokenFilterer) WatchReservesAdded(opts *bind.WatchOpts, sink chan<- *CTokenReservesAdded) (event.Subscription, error) { 3497 3498 logs, sub, err := _CToken.contract.WatchLogs(opts, "ReservesAdded") 3499 if err != nil { 3500 return nil, err 3501 } 3502 return event.NewSubscription(func(quit <-chan struct{}) error { 3503 defer sub.Unsubscribe() 3504 for { 3505 select { 3506 case log := <-logs: 3507 // New log arrived, parse the event and forward to the user 3508 event := new(CTokenReservesAdded) 3509 if err := _CToken.contract.UnpackLog(event, "ReservesAdded", log); err != nil { 3510 return err 3511 } 3512 event.Raw = log 3513 3514 select { 3515 case sink <- event: 3516 case err := <-sub.Err(): 3517 return err 3518 case <-quit: 3519 return nil 3520 } 3521 case err := <-sub.Err(): 3522 return err 3523 case <-quit: 3524 return nil 3525 } 3526 } 3527 }), nil 3528 } 3529 3530 // ParseReservesAdded is a log parse operation binding the contract event 0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5. 3531 // 3532 // Solidity: event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves) 3533 func (_CToken *CTokenFilterer) ParseReservesAdded(log types.Log) (*CTokenReservesAdded, error) { 3534 event := new(CTokenReservesAdded) 3535 if err := _CToken.contract.UnpackLog(event, "ReservesAdded", log); err != nil { 3536 return nil, err 3537 } 3538 return event, nil 3539 } 3540 3541 // CTokenReservesReducedIterator is returned from FilterReservesReduced and is used to iterate over the raw logs and unpacked data for ReservesReduced events raised by the CToken contract. 3542 type CTokenReservesReducedIterator struct { 3543 Event *CTokenReservesReduced // Event containing the contract specifics and raw log 3544 3545 contract *bind.BoundContract // Generic contract to use for unpacking event data 3546 event string // Event name to use for unpacking event data 3547 3548 logs chan types.Log // Log channel receiving the found contract events 3549 sub ethereum.Subscription // Subscription for errors, completion and termination 3550 done bool // Whether the subscription completed delivering logs 3551 fail error // Occurred error to stop iteration 3552 } 3553 3554 // Next advances the iterator to the subsequent event, returning whether there 3555 // are any more events found. In case of a retrieval or parsing error, false is 3556 // returned and Error() can be queried for the exact failure. 3557 func (it *CTokenReservesReducedIterator) Next() bool { 3558 // If the iterator failed, stop iterating 3559 if it.fail != nil { 3560 return false 3561 } 3562 // If the iterator completed, deliver directly whatever's available 3563 if it.done { 3564 select { 3565 case log := <-it.logs: 3566 it.Event = new(CTokenReservesReduced) 3567 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3568 it.fail = err 3569 return false 3570 } 3571 it.Event.Raw = log 3572 return true 3573 3574 default: 3575 return false 3576 } 3577 } 3578 // Iterator still in progress, wait for either a data or an error event 3579 select { 3580 case log := <-it.logs: 3581 it.Event = new(CTokenReservesReduced) 3582 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3583 it.fail = err 3584 return false 3585 } 3586 it.Event.Raw = log 3587 return true 3588 3589 case err := <-it.sub.Err(): 3590 it.done = true 3591 it.fail = err 3592 return it.Next() 3593 } 3594 } 3595 3596 // Error returns any retrieval or parsing error occurred during filtering. 3597 func (it *CTokenReservesReducedIterator) Error() error { 3598 return it.fail 3599 } 3600 3601 // Close terminates the iteration process, releasing any pending underlying 3602 // resources. 3603 func (it *CTokenReservesReducedIterator) Close() error { 3604 it.sub.Unsubscribe() 3605 return nil 3606 } 3607 3608 // CTokenReservesReduced represents a ReservesReduced event raised by the CToken contract. 3609 type CTokenReservesReduced struct { 3610 Admin common.Address 3611 ReduceAmount *big.Int 3612 NewTotalReserves *big.Int 3613 Raw types.Log // Blockchain specific contextual infos 3614 } 3615 3616 // FilterReservesReduced is a free log retrieval operation binding the contract event 0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e. 3617 // 3618 // Solidity: event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves) 3619 func (_CToken *CTokenFilterer) FilterReservesReduced(opts *bind.FilterOpts) (*CTokenReservesReducedIterator, error) { 3620 3621 logs, sub, err := _CToken.contract.FilterLogs(opts, "ReservesReduced") 3622 if err != nil { 3623 return nil, err 3624 } 3625 return &CTokenReservesReducedIterator{contract: _CToken.contract, event: "ReservesReduced", logs: logs, sub: sub}, nil 3626 } 3627 3628 // WatchReservesReduced is a free log subscription operation binding the contract event 0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e. 3629 // 3630 // Solidity: event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves) 3631 func (_CToken *CTokenFilterer) WatchReservesReduced(opts *bind.WatchOpts, sink chan<- *CTokenReservesReduced) (event.Subscription, error) { 3632 3633 logs, sub, err := _CToken.contract.WatchLogs(opts, "ReservesReduced") 3634 if err != nil { 3635 return nil, err 3636 } 3637 return event.NewSubscription(func(quit <-chan struct{}) error { 3638 defer sub.Unsubscribe() 3639 for { 3640 select { 3641 case log := <-logs: 3642 // New log arrived, parse the event and forward to the user 3643 event := new(CTokenReservesReduced) 3644 if err := _CToken.contract.UnpackLog(event, "ReservesReduced", log); err != nil { 3645 return err 3646 } 3647 event.Raw = log 3648 3649 select { 3650 case sink <- event: 3651 case err := <-sub.Err(): 3652 return err 3653 case <-quit: 3654 return nil 3655 } 3656 case err := <-sub.Err(): 3657 return err 3658 case <-quit: 3659 return nil 3660 } 3661 } 3662 }), nil 3663 } 3664 3665 // ParseReservesReduced is a log parse operation binding the contract event 0x3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e. 3666 // 3667 // Solidity: event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves) 3668 func (_CToken *CTokenFilterer) ParseReservesReduced(log types.Log) (*CTokenReservesReduced, error) { 3669 event := new(CTokenReservesReduced) 3670 if err := _CToken.contract.UnpackLog(event, "ReservesReduced", log); err != nil { 3671 return nil, err 3672 } 3673 return event, nil 3674 } 3675 3676 // CTokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the CToken contract. 3677 type CTokenTransferIterator struct { 3678 Event *CTokenTransfer // Event containing the contract specifics and raw log 3679 3680 contract *bind.BoundContract // Generic contract to use for unpacking event data 3681 event string // Event name to use for unpacking event data 3682 3683 logs chan types.Log // Log channel receiving the found contract events 3684 sub ethereum.Subscription // Subscription for errors, completion and termination 3685 done bool // Whether the subscription completed delivering logs 3686 fail error // Occurred error to stop iteration 3687 } 3688 3689 // Next advances the iterator to the subsequent event, returning whether there 3690 // are any more events found. In case of a retrieval or parsing error, false is 3691 // returned and Error() can be queried for the exact failure. 3692 func (it *CTokenTransferIterator) Next() bool { 3693 // If the iterator failed, stop iterating 3694 if it.fail != nil { 3695 return false 3696 } 3697 // If the iterator completed, deliver directly whatever's available 3698 if it.done { 3699 select { 3700 case log := <-it.logs: 3701 it.Event = new(CTokenTransfer) 3702 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3703 it.fail = err 3704 return false 3705 } 3706 it.Event.Raw = log 3707 return true 3708 3709 default: 3710 return false 3711 } 3712 } 3713 // Iterator still in progress, wait for either a data or an error event 3714 select { 3715 case log := <-it.logs: 3716 it.Event = new(CTokenTransfer) 3717 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3718 it.fail = err 3719 return false 3720 } 3721 it.Event.Raw = log 3722 return true 3723 3724 case err := <-it.sub.Err(): 3725 it.done = true 3726 it.fail = err 3727 return it.Next() 3728 } 3729 } 3730 3731 // Error returns any retrieval or parsing error occurred during filtering. 3732 func (it *CTokenTransferIterator) Error() error { 3733 return it.fail 3734 } 3735 3736 // Close terminates the iteration process, releasing any pending underlying 3737 // resources. 3738 func (it *CTokenTransferIterator) Close() error { 3739 it.sub.Unsubscribe() 3740 return nil 3741 } 3742 3743 // CTokenTransfer represents a Transfer event raised by the CToken contract. 3744 type CTokenTransfer struct { 3745 From common.Address 3746 To common.Address 3747 Amount *big.Int 3748 Raw types.Log // Blockchain specific contextual infos 3749 } 3750 3751 // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 3752 // 3753 // Solidity: event Transfer(address indexed from, address indexed to, uint256 amount) 3754 func (_CToken *CTokenFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*CTokenTransferIterator, error) { 3755 3756 var fromRule []interface{} 3757 for _, fromItem := range from { 3758 fromRule = append(fromRule, fromItem) 3759 } 3760 var toRule []interface{} 3761 for _, toItem := range to { 3762 toRule = append(toRule, toItem) 3763 } 3764 3765 logs, sub, err := _CToken.contract.FilterLogs(opts, "Transfer", fromRule, toRule) 3766 if err != nil { 3767 return nil, err 3768 } 3769 return &CTokenTransferIterator{contract: _CToken.contract, event: "Transfer", logs: logs, sub: sub}, nil 3770 } 3771 3772 // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 3773 // 3774 // Solidity: event Transfer(address indexed from, address indexed to, uint256 amount) 3775 func (_CToken *CTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *CTokenTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { 3776 3777 var fromRule []interface{} 3778 for _, fromItem := range from { 3779 fromRule = append(fromRule, fromItem) 3780 } 3781 var toRule []interface{} 3782 for _, toItem := range to { 3783 toRule = append(toRule, toItem) 3784 } 3785 3786 logs, sub, err := _CToken.contract.WatchLogs(opts, "Transfer", fromRule, toRule) 3787 if err != nil { 3788 return nil, err 3789 } 3790 return event.NewSubscription(func(quit <-chan struct{}) error { 3791 defer sub.Unsubscribe() 3792 for { 3793 select { 3794 case log := <-logs: 3795 // New log arrived, parse the event and forward to the user 3796 event := new(CTokenTransfer) 3797 if err := _CToken.contract.UnpackLog(event, "Transfer", log); err != nil { 3798 return err 3799 } 3800 event.Raw = log 3801 3802 select { 3803 case sink <- event: 3804 case err := <-sub.Err(): 3805 return err 3806 case <-quit: 3807 return nil 3808 } 3809 case err := <-sub.Err(): 3810 return err 3811 case <-quit: 3812 return nil 3813 } 3814 } 3815 }), nil 3816 } 3817 3818 // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. 3819 // 3820 // Solidity: event Transfer(address indexed from, address indexed to, uint256 amount) 3821 func (_CToken *CTokenFilterer) ParseTransfer(log types.Log) (*CTokenTransfer, error) { 3822 event := new(CTokenTransfer) 3823 if err := _CToken.contract.UnpackLog(event, "Transfer", log); err != nil { 3824 return nil, err 3825 } 3826 return event, nil 3827 }