Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 15827003 | 569 days ago | IN | Create: TokenLogic | 0 ETH | 0.02786539 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenLogic
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import '../utils/Vault.sol'; import '../interfaces/ITokenLogic.sol'; import '../interfaces/ICToken.sol'; contract TokenLogic is Vault, ITokenLogic { address implementation_; address public admin; modifier onlyOwner() { require(msg.sender == admin); _; } // Enter Markets function enterMarkets(ICERC721 supplyCToken) external override returns(uint256[] memory) { address[] memory cTokens = new address[](1); cTokens[0] = address(supplyCToken); return supplyCToken.comptroller().enterMarkets(cTokens); } // Borrow ETH function borrowETH(address cToken, uint256 amount) external override onlyOwner { ICEther(cToken).borrow(amount); payable(admin).transfer(amount); } // Claim NFT function claimNFTs( address cToken, uint256[] calldata redeemTokenIndexes, address to ) external override onlyOwner { uint256 amount = redeemTokenIndexes.length; uint256[] memory tokenIds = new uint256[](amount); ICERC721 supplyCToken = ICERC721(cToken); address _this = address(this); for (uint256 i = 0; i < amount; i++) { tokenIds[i] = supplyCToken.userTokens(_this, redeemTokenIndexes[i]); } supplyCToken.redeems(redeemTokenIndexes); IUnderlying underlying = IUnderlying(supplyCToken.underlying()); for (uint256 i = 0; i < amount; i++) { underlying.transferFrom(_this, to, tokenIds[i]); } } // Claim cToken function claimCTokens( address cToken, uint256 amount, address to ) external override onlyOwner { ICERC721 supplyCToken = ICERC721(cToken); for (uint256 i = 0; i < amount; i++) { supplyCToken.transfer(to, 0); } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IComptroller { function enterMarkets(address[] memory cTokens) external returns (uint256[] memory); } interface ICEther { function borrow(uint256 borrowAmount) external returns (uint256); } interface ICERC721 { function mints(uint256[] calldata tokenIds) external returns (uint256[] memory); function transfer(address dst, uint256 amount) external returns (bool); function userTokens(address user, uint256 index) external view returns (uint256); function redeems(uint256[] calldata redeemTokenIds) external returns (uint256[] memory); function underlying() external view returns (address); function comptroller() external view returns (IComptroller); } interface IUnderlying { function transferFrom( address from, address to, uint256 tokenId ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import './ICToken.sol'; interface ITokenLogic { // Enter Markets function enterMarkets(ICERC721 cToken) external returns(uint256[] memory); // Borrow ETH function borrowETH(address cToken, uint256 amount) external; // Claim NFTs function claimNFTs( address cToken, uint256[] calldata redeemTokenIndexes, address to ) external; // Claim cToken function claimCTokens( address cToken, uint256 amount, address to ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IToken { function balanceOf(address account) external view returns (uint256); function transferFrom( address _from, address _to, uint256 _tokenId ) external payable; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; function isApprovedForAll(address owner, address spender) external view returns (bool); function setApprovalForAll(address operator, bool approved) external; } contract Vault { function onERC1155Received( address, address, uint256, uint256, bytes calldata ) public virtual returns (bytes4) { return this.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) public virtual returns (bytes4) { return this.onERC1155BatchReceived.selector; } function onERC721Received( address, address, uint256, bytes calldata ) external virtual returns (bytes4) { return 0x150b7a02; } // Used by ERC721BasicToken.sol function onERC721Received( address, uint256, bytes calldata ) external virtual returns (bytes4) { return 0xf0b9e5ba; } receive() external payable {} }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"borrowETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"claimCTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cToken","type":"address"},{"internalType":"uint256[]","name":"redeemTokenIndexes","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"claimNFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ICERC721","name":"supplyCToken","type":"address"}],"name":"enterMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610e29806100206000396000f3fe60806040526004361061008a5760003560e01c8063bc197c8111610059578063bc197c8114610142578063e94c1c7c14610171578063f0b9e5ba1461019e578063f23a6e61146101c9578063f851a440146101f657600080fd5b806306767d7014610096578063150b7a02146100b857806381cb7833146101025780639fb2ac251461012257600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100b66100b1366004610a9f565b61022e565b005b3480156100c457600080fd5b506100e46100d33660046109b4565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561010e57600080fd5b506100b661011d366004610b30565b610562565b34801561012e57600080fd5b506100b661013d366004610b05565b610621565b34801561014e57600080fd5b506100e461015d3660046108f9565b63bc197c8160e01b98975050505050505050565b34801561017d57600080fd5b5061019161018c366004610cab565b6106f2565b6040516100f99190610d66565b3480156101aa57600080fd5b506100e46101b9366004610b71565b63785cf2dd60e11b949350505050565b3480156101d557600080fd5b506100e46101e4366004610a25565b63f23a6e6160e01b9695505050505050565b34801561020257600080fd5b50600154610216906001600160a01b031681565b6040516001600160a01b0390911681526020016100f9565b6001546001600160a01b0316331461024557600080fd5b8160008167ffffffffffffffff81111561026f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610298578160200160208202803683370190505b509050853060005b8481101561039a57826001600160a01b031663f9f411d8838a8a858181106102d857634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602002919091013560248301525060440160206040518083038186803b15801561032557600080fd5b505afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d9190610cc7565b84828151811061037d57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061039281610d9e565b9150506102a0565b50604051631e94c6ed60e11b81526001600160a01b03831690633d298dda906103c9908a908a90600401610d2c565b600060405180830381600087803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261041f9190810190610bcb565b506000826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561045b57600080fd5b505afa15801561046f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049391906108dd565b905060005b8581101561055657816001600160a01b03166323b872dd84898885815181106104d157634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b50505050808061054e90610d9e565b915050610498565b50505050505050505050565b6001546001600160a01b0316331461057957600080fd5b8260005b8381101561061a5760405163a9059cbb60e01b81526001600160a01b0384811660048301526000602483015283169063a9059cbb90604401602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106079190610c8b565b508061061281610d9e565b91505061057d565b5050505050565b6001546001600160a01b0316331461063857600080fd5b60405163317afabb60e21b8152600481018290526001600160a01b0383169063c5ebeaec90602401602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190610cc7565b506001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106ed573d6000803e3d6000fd5b505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061073a57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050826001600160a01b0316635fe3b5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb91906108dd565b6001600160a01b031663c2998238826040518263ffffffff1660e01b81526004016107f69190610cdf565b600060405180830381600087803b15801561081057600080fd5b505af1158015610824573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261084c9190810190610bcb565b9392505050565b60008083601f840112610864578081fd5b50813567ffffffffffffffff81111561087b578182fd5b6020830191508360208260051b850101111561089657600080fd5b9250929050565b60008083601f8401126108ae578182fd5b50813567ffffffffffffffff8111156108c5578182fd5b60208301915083602082850101111561089657600080fd5b6000602082840312156108ee578081fd5b815161084c81610ddb565b60008060008060008060008060a0898b031215610914578384fd5b883561091f81610ddb565b9750602089013561092f81610ddb565b9650604089013567ffffffffffffffff8082111561094b578586fd5b6109578c838d01610853565b909850965060608b013591508082111561096f578586fd5b61097b8c838d01610853565b909650945060808b0135915080821115610993578384fd5b506109a08b828c0161089d565b999c989b5096995094979396929594505050565b6000806000806000608086880312156109cb578081fd5b85356109d681610ddb565b945060208601356109e681610ddb565b935060408601359250606086013567ffffffffffffffff811115610a08578182fd5b610a148882890161089d565b969995985093965092949392505050565b60008060008060008060a08789031215610a3d578182fd5b8635610a4881610ddb565b95506020870135610a5881610ddb565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a81578283fd5b610a8d89828a0161089d565b979a9699509497509295939492505050565b60008060008060608587031215610ab4578384fd5b8435610abf81610ddb565b9350602085013567ffffffffffffffff811115610ada578384fd5b610ae687828801610853565b9094509250506040850135610afa81610ddb565b939692955090935050565b60008060408385031215610b17578182fd5b8235610b2281610ddb565b946020939093013593505050565b600080600060608486031215610b44578283fd5b8335610b4f81610ddb565b9250602084013591506040840135610b6681610ddb565b809150509250925092565b60008060008060608587031215610b86578384fd5b8435610b9181610ddb565b935060208501359250604085013567ffffffffffffffff811115610bb3578283fd5b610bbf8782880161089d565b95989497509550505050565b60006020808385031215610bdd578182fd5b825167ffffffffffffffff80821115610bf4578384fd5b818501915085601f830112610c07578384fd5b815181811115610c1957610c19610dc5565b8060051b604051601f19603f83011681018181108582111715610c3e57610c3e610dc5565b604052828152858101935084860182860187018a1015610c5c578788fd5b8795505b83861015610c7e578051855260019590950194938601938601610c60565b5098975050505050505050565b600060208284031215610c9c578081fd5b8151801515811461084c578182fd5b600060208284031215610cbc578081fd5b813561084c81610ddb565b600060208284031215610cd8578081fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b81811015610d205783516001600160a01b031683529284019291840191600101610cfb565b50909695505050505050565b6020808252810182905260006001600160fb1b03831115610d4b578081fd5b8260051b808560408501379190910160400190815292915050565b6020808252825182820181905260009190848201906040850190845b81811015610d2057835183529284019291840191600101610d82565b6000600019821415610dbe57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610df057600080fd5b5056fea26469706673582212206004f6c4b0fc93caaa9e5a267b6dfbd575fac2bd2ba238a66f5be9fc71ed9c8a64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061008a5760003560e01c8063bc197c8111610059578063bc197c8114610142578063e94c1c7c14610171578063f0b9e5ba1461019e578063f23a6e61146101c9578063f851a440146101f657600080fd5b806306767d7014610096578063150b7a02146100b857806381cb7833146101025780639fb2ac251461012257600080fd5b3661009157005b600080fd5b3480156100a257600080fd5b506100b66100b1366004610a9f565b61022e565b005b3480156100c457600080fd5b506100e46100d33660046109b4565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561010e57600080fd5b506100b661011d366004610b30565b610562565b34801561012e57600080fd5b506100b661013d366004610b05565b610621565b34801561014e57600080fd5b506100e461015d3660046108f9565b63bc197c8160e01b98975050505050505050565b34801561017d57600080fd5b5061019161018c366004610cab565b6106f2565b6040516100f99190610d66565b3480156101aa57600080fd5b506100e46101b9366004610b71565b63785cf2dd60e11b949350505050565b3480156101d557600080fd5b506100e46101e4366004610a25565b63f23a6e6160e01b9695505050505050565b34801561020257600080fd5b50600154610216906001600160a01b031681565b6040516001600160a01b0390911681526020016100f9565b6001546001600160a01b0316331461024557600080fd5b8160008167ffffffffffffffff81111561026f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610298578160200160208202803683370190505b509050853060005b8481101561039a57826001600160a01b031663f9f411d8838a8a858181106102d857634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602002919091013560248301525060440160206040518083038186803b15801561032557600080fd5b505afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035d9190610cc7565b84828151811061037d57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061039281610d9e565b9150506102a0565b50604051631e94c6ed60e11b81526001600160a01b03831690633d298dda906103c9908a908a90600401610d2c565b600060405180830381600087803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261041f9190810190610bcb565b506000826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561045b57600080fd5b505afa15801561046f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049391906108dd565b905060005b8581101561055657816001600160a01b03166323b872dd84898885815181106104d157634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b50505050808061054e90610d9e565b915050610498565b50505050505050505050565b6001546001600160a01b0316331461057957600080fd5b8260005b8381101561061a5760405163a9059cbb60e01b81526001600160a01b0384811660048301526000602483015283169063a9059cbb90604401602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106079190610c8b565b508061061281610d9e565b91505061057d565b5050505050565b6001546001600160a01b0316331461063857600080fd5b60405163317afabb60e21b8152600481018290526001600160a01b0383169063c5ebeaec90602401602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190610cc7565b506001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106ed573d6000803e3d6000fd5b505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061073a57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050826001600160a01b0316635fe3b5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb91906108dd565b6001600160a01b031663c2998238826040518263ffffffff1660e01b81526004016107f69190610cdf565b600060405180830381600087803b15801561081057600080fd5b505af1158015610824573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261084c9190810190610bcb565b9392505050565b60008083601f840112610864578081fd5b50813567ffffffffffffffff81111561087b578182fd5b6020830191508360208260051b850101111561089657600080fd5b9250929050565b60008083601f8401126108ae578182fd5b50813567ffffffffffffffff8111156108c5578182fd5b60208301915083602082850101111561089657600080fd5b6000602082840312156108ee578081fd5b815161084c81610ddb565b60008060008060008060008060a0898b031215610914578384fd5b883561091f81610ddb565b9750602089013561092f81610ddb565b9650604089013567ffffffffffffffff8082111561094b578586fd5b6109578c838d01610853565b909850965060608b013591508082111561096f578586fd5b61097b8c838d01610853565b909650945060808b0135915080821115610993578384fd5b506109a08b828c0161089d565b999c989b5096995094979396929594505050565b6000806000806000608086880312156109cb578081fd5b85356109d681610ddb565b945060208601356109e681610ddb565b935060408601359250606086013567ffffffffffffffff811115610a08578182fd5b610a148882890161089d565b969995985093965092949392505050565b60008060008060008060a08789031215610a3d578182fd5b8635610a4881610ddb565b95506020870135610a5881610ddb565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a81578283fd5b610a8d89828a0161089d565b979a9699509497509295939492505050565b60008060008060608587031215610ab4578384fd5b8435610abf81610ddb565b9350602085013567ffffffffffffffff811115610ada578384fd5b610ae687828801610853565b9094509250506040850135610afa81610ddb565b939692955090935050565b60008060408385031215610b17578182fd5b8235610b2281610ddb565b946020939093013593505050565b600080600060608486031215610b44578283fd5b8335610b4f81610ddb565b9250602084013591506040840135610b6681610ddb565b809150509250925092565b60008060008060608587031215610b86578384fd5b8435610b9181610ddb565b935060208501359250604085013567ffffffffffffffff811115610bb3578283fd5b610bbf8782880161089d565b95989497509550505050565b60006020808385031215610bdd578182fd5b825167ffffffffffffffff80821115610bf4578384fd5b818501915085601f830112610c07578384fd5b815181811115610c1957610c19610dc5565b8060051b604051601f19603f83011681018181108582111715610c3e57610c3e610dc5565b604052828152858101935084860182860187018a1015610c5c578788fd5b8795505b83861015610c7e578051855260019590950194938601938601610c60565b5098975050505050505050565b600060208284031215610c9c578081fd5b8151801515811461084c578182fd5b600060208284031215610cbc578081fd5b813561084c81610ddb565b600060208284031215610cd8578081fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b81811015610d205783516001600160a01b031683529284019291840191600101610cfb565b50909695505050505050565b6020808252810182905260006001600160fb1b03831115610d4b578081fd5b8260051b808560408501379190910160400190815292915050565b6020808252825182820181905260009190848201906040850190845b81811015610d2057835183529284019291840191600101610d82565b6000600019821415610dbe57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610df057600080fd5b5056fea26469706673582212206004f6c4b0fc93caaa9e5a267b6dfbd575fac2bd2ba238a66f5be9fc71ed9c8a64736f6c63430008040033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 25 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.