Feature Tip: Add private address tag to any address under My Name Tag !
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
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60c06040 | 14783880 | 816 days ago | IN | 0 ETH | 0.0054838 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
KingInTheShell
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 1 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicense pragma solidity ^0.8.11; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import "./interfaces/IKaijuKingz.sol"; import "./interfaces/IScales.sol"; /** ..',,;;;;:::;;;,,'.. .';:ccccc:::;;,,,,,;;;:::ccccc:;'. .,:ccc:;'.. ..';:ccc:,. .':cc:,. .,ccc:'. .,clc,. .,clc,. 'clc' 'clc' .;ll,. .;ll;. .:ol. 'co:. ;oc. .co; 'oo' 'lo' .cd; ;dc. .ol. .,. .lo. ,dc. 'cxKWK; cd, ;d; .;oONWMMMMXc ;d; ;d; 'cxKWMMMMMMMMMXl. ;x; ,x: ;dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0NMMMMMMMMMMMMMMNd. :x, .dc .lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd. cd. ld. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl' .dl ,x; .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0d:. ;x, oo. .kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxc'. .oo 'x: .kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOo;. :x' :x. .xWMMMMMMMMMMM0occcccccccccccccccccccccccccccccccccccc:' .x: lo. .oNMMMMMMMMMX; .ol .ol .lXMMMMMMMWd. ,dddddddddddddddo;. .:dddddddddddddo, lo. .dl cXMMMMMM0, 'OMMMMMMMMMMMMMMNd. .xWMMMMMMMMMMMMXo. ld. .dl ;KMMMMNl oWMMMMMMMMMMMMMXc. ,OWMMMMMMMMMMMMK: ld. oo ,OWMMO. ,KMMMMMMMMMMMMW0; .cKMMMMMMMMMMMMWO, oo cd. 'kWX: .xWMMMMMMMMMMMWx. .dKNMMMMMMMMMMMMNd. .dc ,x, .dd. ;KMMMMMMMMMMMXo. 'kWMMMMMMMMMMMMMXl. ,x; .dc . .,:loxOKNWMMK: ;0WMMMMMMMMMMMMW0; cd. :d. ... ..,:c' .lXMMMMMMMMMMMMMWk' .d: .dl :OKOxoc:,.. .xNMMMMMMMMMMMMMNo. cd. ;x, ;0MMMMWWXKOxoclOWMMMMMMMMMMMMMKc ,x; cd. ,OWMMMMMMMMMMMMMMMMMMMMMMMMWO, .dc .oo. .kWMMMMMMMMMMMMMMMMMMMMMMNx. .oo. .oo. .xWMMMMMMMMMMMMMMMMMMMMXl. .oo. .lo. .oNMMMMMMMMMMMMMMMMMW0; .ol. .cd, .lXMMMMMMMMMMMMMMMWk' ,dc. ;dc. :KMMMMMMMMMMMMNKo. .cd; .lo, ;0WWWWWWWWWWKc. 'ol. ,ol. .,,,,,,,,,,. .lo, .;oc. .co:. .;ol' 'lo;. ,ll:. .:ll, .:ll;. .;ll:. .:ll:,. .,:ll:. .,:ccc;'. .';ccc:,. .';cccc::;'... ...';:ccccc;'. .',;::cc::cc::::::::::::;,.. ........ * @title KingInTheShell * @author Augminted Labs, LLC * @notice Mock ERC721 for preserving Collab.Land support in P2E ecosystem */ contract KingInTheShell is ERC165 { IKaijuKingz internal immutable KAIJU; IScales internal immutable SCALES; constructor(address kaiju, address scales) { KAIJU = IKaijuKingz(kaiju); SCALES = IScales(scales); } /** * @notice Get the combined balance of owner's staked and unstaked KAIJU balance * @param owner Address of owner to return balance for * @return uint256 Combined KAIJU balance of owner */ function balanceOf(address owner) public view returns (uint256) { return KAIJU.balanceOf(owner) + SCALES.getAllOwned(owner).length; } /** * @inheritdoc ERC165 */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || super.supportsInterface(interfaceId); } }
// SPDX-License-Identifier: Unlicense pragma solidity ^0.8.4; import "./ISpendable.sol"; interface IScales is ISpendable { function getAllOwned(address) external view returns (uint256[] memory); }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; interface IKaijuKingz is IERC721 { function maxSupply() external returns (uint256); function maxGenCount() external returns (uint256); function RWaste() external returns (address); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface ISpendable is IERC20 { function getSpendable(address) external view returns (uint256); function spend(address, uint256) external; function credit(address, uint256) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
{ "optimizer": { "enabled": true, "runs": 1 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"kaiju","type":"address"},{"internalType":"address","name":"scales","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b5060405161045638038061045683398101604081905261002f91610062565b6001600160a01b039182166080521660a052610095565b80516001600160a01b038116811461005d57600080fd5b919050565b6000806040838503121561007557600080fd5b61007e83610046565b915061008c60208401610046565b90509250929050565b60805160a05161039d6100b9600039600060d501526000610167015261039d6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b57806370a0823114610063575b600080fd5b61004e6100493660046101e7565b610084565b60405190151581526020015b60405180910390f35b610076610071366004610218565b6100bb565b60405190815260200161005a565b60006001600160e01b031982166380ac58cd60e01b14806100b557506301ffc9a760e01b6001600160e01b03198316145b92915050565b604051633b8b914560e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637717228a9061010a908590600401610241565b600060405180830381865afa158015610127573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014f919081019061026b565b516040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061019c908690600401610241565b602060405180830381865afa1580156101b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101dd9190610328565b6100b59190610341565b6000602082840312156101f957600080fd5b81356001600160e01b03198116811461021157600080fd5b9392505050565b60006020828403121561022a57600080fd5b81356001600160a01b038116811461021157600080fd5b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561027e57600080fd5b82516001600160401b038082111561029557600080fd5b818501915085601f8301126102a957600080fd5b8151818111156102bb576102bb610255565b8060051b604051601f19603f830116810181811085821117156102e0576102e0610255565b6040529182528482019250838101850191888311156102fe57600080fd5b938501935b8285101561031c57845184529385019392850192610303565b98975050505050505050565b60006020828403121561033a57600080fd5b5051919050565b6000821982111561036257634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212208fb1c794399fafd41a34bbdb744eff9d426fcf2d430475f9afdcb646d33cdba764736f6c634300080b00330000000000000000000000000c2e57efddba8c768147d1fdf9176a0a6ebd5d8300000000000000000000000027192b750ff796514f039512aaf5a3655a095ea0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b57806370a0823114610063575b600080fd5b61004e6100493660046101e7565b610084565b60405190151581526020015b60405180910390f35b610076610071366004610218565b6100bb565b60405190815260200161005a565b60006001600160e01b031982166380ac58cd60e01b14806100b557506301ffc9a760e01b6001600160e01b03198316145b92915050565b604051633b8b914560e11b81526000906001600160a01b037f00000000000000000000000027192b750ff796514f039512aaf5a3655a095ea01690637717228a9061010a908590600401610241565b600060405180830381865afa158015610127573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014f919081019061026b565b516040516370a0823160e01b81526001600160a01b037f0000000000000000000000000c2e57efddba8c768147d1fdf9176a0a6ebd5d8316906370a082319061019c908690600401610241565b602060405180830381865afa1580156101b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101dd9190610328565b6100b59190610341565b6000602082840312156101f957600080fd5b81356001600160e01b03198116811461021157600080fd5b9392505050565b60006020828403121561022a57600080fd5b81356001600160a01b038116811461021157600080fd5b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561027e57600080fd5b82516001600160401b038082111561029557600080fd5b818501915085601f8301126102a957600080fd5b8151818111156102bb576102bb610255565b8060051b604051601f19603f830116810181811085821117156102e0576102e0610255565b6040529182528482019250838101850191888311156102fe57600080fd5b938501935b8285101561031c57845184529385019392850192610303565b98975050505050505050565b60006020828403121561033a57600080fd5b5051919050565b6000821982111561036257634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212208fb1c794399fafd41a34bbdb744eff9d426fcf2d430475f9afdcb646d33cdba764736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000c2e57efddba8c768147d1fdf9176a0a6ebd5d8300000000000000000000000027192b750ff796514f039512aaf5a3655a095ea0
-----Decoded View---------------
Arg [0] : kaiju (address): 0x0c2E57EFddbA8c768147D1fdF9176a0A6EBd5d83
Arg [1] : scales (address): 0x27192b750fF796514f039512aaf5A3655a095ea0
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000c2e57efddba8c768147d1fdf9176a0a6ebd5d83
Arg [1] : 00000000000000000000000027192b750ff796514f039512aaf5a3655a095ea0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.