TRON GOBLIN
explorerv0.5-beta
MAINNET
block #83,175,521

CErc20Delegator (jNFT) · Verified Contract on Tron

Smart contract
VERIFIED · mainnet
CErc20Delegator JustLend NFT (jNFT)
TRC20 Source verified Token contract Proxy 1
Address TFpPyDCKvNFgos3g3WVsAqMrdqhB81JXHE
Token page
Verification Verified
Standard TRC20
Creation tx df1d01d2…097314
Deployed Jun 17, 2021
Proxy Yes
Contract balance 32TRX on-chain
Total calls 172.65K lifetime triggers
Token holders 7,234 addresses
Total supply 191762.66BjNFT 8 decimals
Market cap $542.63K fully diluted
Contract interface
ABI · 52 fns
Source verified · ABI matches bytecode 52 functions · 20 events · 8,306 bytes
contract.abi.json
[
  {
    "inputs": [
      {
        "name": "underlying_",
        "type": "address"
      },
      {
        "name": "comptroller_",
        "type": "address"
      },
      {
        "name": "interestRateModel_",
        "type": "address"
      },
      {
        "name": "initialExchangeRateMantissa_",
        "type": "uint256"
      },
      {
        "name": "name_",
        "type": "string"
      },
      {
        "name": "symbol_",
        "type": "string"
      },
      {
        "name": "decimals_",
        "type": "uint8"
      },
      {
        "name": "admin_",
        "type": "address"
      },
      {
        "name": "reserveAdmin_",
        "type": "address"
      },
      {
        "name": "implementation_",
        "type": "address"
      },
      {
        "name": "becomeImplementationData",
        "type": "bytes"
      },
      {
        "name": "newReserveFactorMantissa_",
        "type": "uint256"
      }
    ],
    "stateMutability": "Nonpayable",
    "type": "Constructor"
  },
  {
    "inputs": [
      {
        "name": "cashPrior",
        "type": "uint256"
      },
      {
        "name": "interestAccumulated",
        "type": "uint256"
      },
      {
        "name": "borrowIndex",
        "type": "uint256"
      },
      {
        "name": "totalBorrows",
        "type": "uint256"
      }
    ],
    "name": "AccrueInterest",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "indexed": true,
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "name": "spender",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "borrowAmount",
        "type": "uint256"
      },
      {
        "name": "accountBorrows",
        "type": "uint256"
      },
      {
        "name": "totalBorrows",
        "type": "uint256"
      },
      {
        "name": "borrowIndex",
        "type": "uint256"
      }
    ],
    "name": "Borrow",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "error",
        "type": "uint256"
      },
      {
        "name": "info",
        "type": "uint256"
      },
      {
        "name": "detail",
        "type": "uint256"
      }
    ],
    "name": "Failure",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "user",
        "type": "address"
      },
      {
        "name": "jtoken_balance",
        "type": "uint256"
      }
    ],
    "name": "JTokenBalance",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "totalCash",
        "type": "uint256"
      },
      {
        "name": "totalBorrow",
        "type": "uint256"
      },
      {
        "name": "totalReserve",
        "type": "uint256"
      },
      {
        "name": "totalSupply",
        "type": "uint256"
      },
      {
        "name": "borrowRatePerBlock",
        "type": "uint256"
      },
      {
        "name": "borrowIndex",
        "type": "uint256"
      },
      {
        "name": "reserveFactorMantissa",
        "type": "uint256"
      }
    ],
    "name": "JTokenStatus",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "liquidator",
        "type": "address"
      },
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "repayAmount",
        "type": "uint256"
      },
      {
        "name": "cTokenCollateral",
        "type": "address"
      },
      {
        "name": "seizeTokens",
        "type": "uint256"
      }
    ],
    "name": "LiquidateBorrow",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "minter",
        "type": "address"
      },
      {
        "name": "mintAmount",
        "type": "uint256"
      },
      {
        "name": "mintTokens",
        "type": "uint256"
      }
    ],
    "name": "Mint",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldAdmin",
        "type": "address"
      },
      {
        "name": "newAdmin",
        "type": "address"
      }
    ],
    "name": "NewAdmin",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldComptroller",
        "type": "address"
      },
      {
        "name": "newComptroller",
        "type": "address"
      }
    ],
    "name": "NewComptroller",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldImplementation",
        "type": "address"
      },
      {
        "name": "newImplementation",
        "type": "address"
      }
    ],
    "name": "NewImplementation",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldInterestRateModel",
        "type": "address"
      },
      {
        "name": "newInterestRateModel",
        "type": "address"
      }
    ],
    "name": "NewMarketInterestRateModel",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldPendingAdmin",
        "type": "address"
      },
      {
        "name": "newPendingAdmin",
        "type": "address"
      }
    ],
    "name": "NewPendingAdmin",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldAdmin",
        "type": "address"
      },
      {
        "name": "newAdmin",
        "type": "address"
      }
    ],
    "name": "NewReserveAdmin",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "oldReserveFactorMantissa",
        "type": "uint256"
      },
      {
        "name": "newReserveFactorMantissa",
        "type": "uint256"
      }
    ],
    "name": "NewReserveFactor",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "redeemer",
        "type": "address"
      },
      {
        "name": "redeemAmount",
        "type": "uint256"
      },
      {
        "name": "redeemTokens",
        "type": "uint256"
      }
    ],
    "name": "Redeem",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "payer",
        "type": "address"
      },
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "repayAmount",
        "type": "uint256"
      },
      {
        "name": "accountBorrows",
        "type": "uint256"
      },
      {
        "name": "totalBorrows",
        "type": "uint256"
      },
      {
        "name": "borrowIndex",
        "type": "uint256"
      }
    ],
    "name": "RepayBorrow",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "benefactor",
        "type": "address"
      },
      {
        "name": "addAmount",
        "type": "uint256"
      },
      {
        "name": "newTotalReserves",
        "type": "uint256"
      }
    ],
    "name": "ReservesAdded",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "name": "admin",
        "type": "address"
      },
      {
        "name": "reduceAmount",
        "type": "uint256"
      },
      {
        "name": "newTotalReserves",
        "type": "uint256"
      }
    ],
    "name": "ReservesReduced",
    "type": "Event"
  },
  {
    "inputs": [
      {
        "indexed": true,
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "name": "to",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "Event"
  },
  {
    "payable": true,
    "stateMutability": "Payable",
    "type": "Fallback"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "name": "_acceptAdmin",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "addAmount",
        "type": "uint256"
      }
    ],
    "name": "_addReserves",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "reduceAmount",
        "type": "uint256"
      }
    ],
    "name": "_reduceReserves",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "newComptroller",
        "type": "address"
      }
    ],
    "name": "_setComptroller",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "inputs": [
      {
        "name": "implementation_",
        "type": "address"
      },
      {
        "name": "allowResign",
        "type": "bool"
      },
      {
        "name": "becomeImplementationData",
        "type": "bytes"
      }
    ],
    "name": "_setImplementation",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "newInterestRateModel",
        "type": "address"
      }
    ],
    "name": "_setInterestRateModel",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "newPendingAdmin",
        "type": "address"
      }
    ],
    "name": "_setPendingAdmin",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "newReserveAdmin",
        "type": "address"
      }
    ],
    "name": "_setReserveAdmin",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "newReserveFactorMantissa",
        "type": "uint256"
      }
    ],
    "name": "_setReserveFactor",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "accrualBlockNumber",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "name": "accrueInterest",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "admin",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "inputs": [
      {
        "name": "owner",
        "type": "address"
      },
      {
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bool"
      }
    ],
    "inputs": [
      {
        "name": "spender",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "inputs": [
      {
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOfUnderlying",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "borrowAmount",
        "type": "uint256"
      }
    ],
    "name": "borrow",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "account",
        "type": "address"
      }
    ],
    "name": "borrowBalanceCurrent",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "inputs": [
      {
        "name": "account",
        "type": "address"
      }
    ],
    "name": "borrowBalanceStored",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "borrowIndex",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "borrowRatePerBlock",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "comptroller",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint8"
      }
    ],
    "constant": true,
    "name": "decimals",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bytes"
      }
    ],
    "inputs": [
      {
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "delegateToImplementation",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bytes"
      }
    ],
    "constant": true,
    "inputs": [
      {
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "delegateToViewImplementation",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "name": "exchangeRateCurrent",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "exchangeRateStored",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      },
      {
        "type": "uint256"
      },
      {
        "type": "uint256"
      },
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "inputs": [
      {
        "name": "account",
        "type": "address"
      }
    ],
    "name": "getAccountSnapshot",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "getCash",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "implementation",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "interestRateModel",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bool"
      }
    ],
    "constant": true,
    "name": "isCToken",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "repayAmount",
        "type": "uint256"
      },
      {
        "name": "cTokenCollateral",
        "type": "address"
      }
    ],
    "name": "liquidateBorrow",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "mintAmount",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "string"
      }
    ],
    "constant": true,
    "name": "name",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "pendingAdmin",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "redeemTokens",
        "type": "uint256"
      }
    ],
    "name": "redeem",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "redeemAmount",
        "type": "uint256"
      }
    ],
    "name": "redeemUnderlying",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "repayAmount",
        "type": "uint256"
      }
    ],
    "name": "repayBorrow",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "repayAmount",
        "type": "uint256"
      }
    ],
    "name": "repayBorrowBehalf",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "reserveAdmin",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "reserveFactorMantissa",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "inputs": [
      {
        "name": "liquidator",
        "type": "address"
      },
      {
        "name": "borrower",
        "type": "address"
      },
      {
        "name": "seizeTokens",
        "type": "uint256"
      }
    ],
    "name": "seize",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "supplyRatePerBlock",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "string"
      }
    ],
    "constant": true,
    "name": "symbol",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "totalBorrows",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "name": "totalBorrowsCurrent",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "totalReserves",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "uint256"
      }
    ],
    "constant": true,
    "name": "totalSupply",
    "stateMutability": "View",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bool"
      }
    ],
    "inputs": [
      {
        "name": "dst",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "bool"
      }
    ],
    "inputs": [
      {
        "name": "src",
        "type": "address"
      },
      {
        "name": "dst",
        "type": "address"
      },
      {
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "stateMutability": "Nonpayable",
    "type": "Function"
  },
  {
    "outputs": [
      {
        "type": "address"
      }
    ],
    "constant": true,
    "name": "underlying",
    "stateMutability": "View",
    "type": "Function"
  }
]
About this contract
overview

CErc20Delegator is the verified TRC20 contract behind JustLend NFT (jNFT) on Tron, deployed from TV3Wg2zNUBzGJsJNCEUZ2W9YVsFK2AAcLB on Jun 17, 2021. It has been called 172.65K times.

The ABI matches the on-chain bytecode, so the Read tab above runs live view calls against the node (no gas, no signature). The verified Solidity source is viewable on TronScan ↗. Write calls require a signed wallet transaction — wallet support is coming soon.