Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 17 from a total of 17 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 16465494 | 724 days ago | IN | 0 ETH | 0.00048642 | ||||
Settle | 16465491 | 724 days ago | IN | 0 ETH | 0.00094951 | ||||
Bid | 16465339 | 724 days ago | IN | 0.1069 ETH | 0.00066545 | ||||
Bid | 16465239 | 724 days ago | IN | 0.069 ETH | 0.00067411 | ||||
Bid | 16464991 | 724 days ago | IN | 0.042 ETH | 0.00098676 | ||||
Bid | 16464924 | 724 days ago | IN | 0.04 ETH | 0.00140528 | ||||
Bid | 16464901 | 724 days ago | IN | 0.03047 ETH | 0.00142455 | ||||
Bid | 16464745 | 725 days ago | IN | 0.02426 ETH | 0.00122384 | ||||
Bid | 16464584 | 725 days ago | IN | 0.0231 ETH | 0.00079904 | ||||
Bid | 16464563 | 725 days ago | IN | 0.022 ETH | 0.00105931 | ||||
Bid | 16464409 | 725 days ago | IN | 0.02095 ETH | 0.00110739 | ||||
Bid | 16464363 | 725 days ago | IN | 0.01995 ETH | 0.00195029 | ||||
Bid | 16464330 | 725 days ago | IN | 0.019 ETH | 0.00112966 | ||||
Bid | 16464319 | 725 days ago | IN | 0.01784 ETH | 0.00109182 | ||||
Bid | 16464306 | 725 days ago | IN | 0.01699 ETH | 0.00099068 | ||||
Bid | 16464303 | 725 days ago | IN | 0.01618 ETH | 0.00122012 | ||||
Initalize | 16463111 | 725 days ago | IN | 0 ETH | 0.00147953 |
Latest 14 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16465494 | 724 days ago | 0.1069 ETH | ||||
16465339 | 724 days ago | 0.069 ETH | ||||
16465239 | 724 days ago | 0.042 ETH | ||||
16464991 | 724 days ago | 0.04 ETH | ||||
16464924 | 724 days ago | 0.03047 ETH | ||||
16464901 | 724 days ago | 0.02426 ETH | ||||
16464745 | 725 days ago | 0.0231 ETH | ||||
16464584 | 725 days ago | 0.022 ETH | ||||
16464563 | 725 days ago | 0.02095 ETH | ||||
16464409 | 725 days ago | 0.01995 ETH | ||||
16464363 | 725 days ago | 0.019 ETH | ||||
16464330 | 725 days ago | 0.01784 ETH | ||||
16464319 | 725 days ago | 0.01699 ETH | ||||
16464306 | 725 days ago | 0.01618 ETH |
Loading...
Loading
Contract Name:
Oschuns
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* SPDX-License-Identifier: MIT :~!7!777!!~:. .::::::. :!7?7?!77~?~777!. :~!~^~~!!~~^:. . ~?!~77!!^!!7!!!?JY?Y?~^~~~!7!77!!^^^: ^J!!!~. :!!!7?PPYJ!~^:. ...:^^.. :!7 ^Y!7^ :~77YPGP5Y7~~^:.:. .::::::::7JY~!?^!: :~!7Y5PBBGPPP5YJ??7!~^:. .^~7?77?777???JJYYY7^ .^!?JJY5Y!JPPPGPPPP555J?77~: .::^^::.. .~7777~7?!J~?~~7!7JJ5?^ ^~7JJJJ5Y. .^!?YPGPP55YJYJ?!. .~7??777777!!~^: ^7???~77^!:~^7^7J~7!7YYY?^ ^!7????JY5^ :~JPGYJ5J???7~ ^7JJJ77!!~~!!!!!!!!: ^J??7!~. .^!77!~7JYPP7?JJJJJ?YP~ ~PJ?JY?7??!?YJYJ!~~~^^^::^^!!777^ .JJ?7!. .!!77!JYY5GYJJJ7??JY: 55?JJ?7??J5YY5Y7~:. .77!7 :YJ7!. ~!7??YJJ5P5J??77?Y5J: :?Y7JJ7!!!JPPJJYY7~^ :. ~7!! ^YJ7~ :^7??JYJJYBBJ!7?JY5PPPJJYYJJ??77JPPJJJ?!~~7P&G5YY5J!~. ^777!!7!. ?Y?^ :!7?YYY555PYJB5JYPGG555YYJYJJJY55PPPPPY???JPBYGPP555J!~. .^~~^: ^Y7~ :!7?YY55YPP? J#GPG55YJJJJ???????JY5PPGP5J5GJ: !GGP555J7~. .~~!J5J^^: .~!JJYY55PBY YBP5JYJJJ?7?J???7??JYYYPGGP5~ 7GPPPP5?!~: .:?J?77??J7: :!?5YYJYPPB? ~BB5YJ?JJJJYY?????J???JY5PBY 7PPPP5Y7!!: ^~~~~^^:. ~!77^^^!755~ :7JYYJ?JJYP5 ?#GPYYYYYYYJJJ?J7?J??JJY5GB5 YPPP5P5J7~: .7YY7!!~!!7~^. ~~7. :!YPP. :7?JYYJ?JY5GJ. !BBGP55YYYYJYJJJJJJ?JJY5PBBP. ^PP5PP5YJ?77GG57~^....!??~. .^!. ~?Y5P. ~??JJJJJJYYGPJJBBBGPP55YYJYYJYJJJJJYY5GBBJ 5PG55YJJ??75PY?~^ ^J~: . .^7JY5P? .~???JJYYJYY5P#&BBBGGPP55555YYY5YY5PGGBBP. ^P5YY5P5J?JJP5JJ7!: ^!: .^~7JYY5P7 ^?GP5P555PPPPB#BBGGPPPPPPPPPPPPGGGGGGBP. ^55JJ5JJYJJJ5#BPJJ?!^. .. .:~7?YY5PPY^ .!J5555PPGPP5P55G##BGGPGGGGGGGGGGGGGGPGGGY^:...~7GYYJ5YJ??JJYBGBG5PY?!^. :~7JYY555J~ ~YJJ?????JJYPGP555BBBBBGGGGGGGGGGGGGGGPPBP55YYYYPYY555Y??J??Y5! ~PGG55?!~^. .^7JY5P55J^ ^5?77~^~!77JYYPBPGP#GYPBGGBGBBGPPPPP5PPPY5#GP5Y5Y555JYJJ7??JYY~ ^PGP5YY!~^. .!7Y55J5PJ. !5?!. .!77JJYPBBB&GPGGGBBGBGP555PPGGPBP5BBP5555YYYYJ???JYY7: 7GPP5Y?!~~: .!!?5555YP: . ^JJ: !!!!JYG#BBGBGGY^:7GBGPY5PPBY:.!BGGGPPPPYY?YYYJJ5Y7: :G5PYYJ!~~^ :!!JYY5555: .~!!!~ .~!!~!?5B#G5PGGG57!?GBGPPPPGBP??YGP55P5PP55Y5PP55?: .JG5P5YJ?!~^ ^~~JJYY5J5J: .:~~~^~7JP#PPPBPPGGBBBGGGPPPPPPGPP5Y5555555555PGGGG5?7!~^~~7YGGJYP5YJ?!!: :7~J5PY?7J55?~:.. .:^^^~~^!~~!?PBPY55GGGGGBBGGGBGGGGPPP55YJYPPP5YJJJYYYY5P5PP555555P5JJ5YY?7!~~. ^!!?55YJJYYYYJJ???YYPJ!~~~!~~!!?PBG5Y55PGPPGGGPPPGBBGGGGPYYY5YYPPPYYJJ???J?J?J7?77?7J??7JYYJ!~~~. .~7!?Y55YYYJYYJJJPPJ!~^~!~~!~!JGBPP55PPP5Y5PPP55PPPPGGG55YYYY5Y5P5Y?7J7?!J777!!!?JJJJJJJYYJ!~!^. :^!7?YY55YYYYPP57~^!!~!^~?J5P5YY55PGG555PP5Y?JYPGGGGGPPY5Y?YPPP5YYYYYJ?JJ?JYYY5P555P5PPPP!:. .^~!77?Y5GBB5~:!~~!^~7JPG5YY555GGGP5JYYYJJYYY5PPPGGGP5YY?JPGGGPPPYYYYY5PGGP5PY??JJ???J57 .~~~??YGY^!~^~^!7JPBGPPPGPPB##PY?JJJJJYYJY5PPPPPP5YJJ?JYYBGY~:::...^GP5YJY?!~^:^^~!7?~ :^~7?77~^!!7Y5PYJ?!~^:.7#GYJ???JJ?JJY5P5PPPP55JJ777?YPB! ?P5555J!^.::. !?777 :~^:!!~7YPP! :PB5YJJJJJJJYYYY?~!5G55YYYJ77?J5#7 ^P55YJ?!~.7??::YJ??! ~7^7!!7Y55PG5!^:.^JBB5YPJJJ5YYYYY?^ ^Y55YY7??JJJYGG: .YP555J!~:.J7!7JJJ?!. :~^!7!?JY5YYPGPPPGGPYPP5YYJJJYJ?!. .!J55J7Y?J7JJ5GGJ~^!JGP55Y7~^. .~!!!!~: ~~~!!7JJYJYYYYJ5JJ?J5G55JJ?J?7^. ~?YYJJ77777??5PPGP5Y5YYJ!~^ .:^!!~7????JJY5555YY55YJ?J?!^. .^!JYYYJJJ???JJJYYYJYJ7!~^. :^^!!!7??JJYYJYYYJJJJ7!~~: .^7?YYY555JYY5Y5YJJ7!~^: .~~~!!!777777??7?7!~^. .~!7??JYYYYYYJ?77!!:. .^^^^!~~~!~~~^:.. .:~~~!!7777!~!~:: .. .. ..::::~:... */ pragma solidity 0.8.15; import {IZooOfNeuralAutomata} from "../interfaces/IZooOfNeuralAutomata.sol"; import {Owned} from "../../lib/solmate/src/auth/Owned.sol"; import {IERC1155} from "../../lib/forge-std/src/interfaces/IERC1155.sol"; import {ERC1155TokenReceiver} from "../../lib/solmate/src/tokens/ERC1155.sol"; import {IOschuns} from "../interfaces/IOschuns.sol"; contract Oschuns is Owned, IOschuns, ERC1155TokenReceiver { uint256 constant id = 303; uint256 constant duration = 4 hours; address public immutable zona; uint256 public immutable startTime; uint256 public endTime; address public topBidder; uint256 public topBid = 0.0154095238095238 ether; bool public initalized; bool public settled; mapping (address => bool) public bidder; constructor( address _owner, address _zona, uint256 _startTime ) Owned(_owner) { zona = _zona; startTime = _startTime; endTime = _startTime + duration; } function bid() external payable { require(startTime <= block.timestamp); require(endTime > block.timestamp); require(msg.value >= nextPrice()); address oldBidder = topBidder; uint256 oldBid = topBid; topBidder = msg.sender; topBid = msg.value; bidder[msg.sender] = true; if(endTime - block.timestamp <= 300){ endTime += 300; } if(!(oldBidder == address(0))) { (bool success,) = oldBidder.call{value: oldBid}(""); if(!success){ emit FailedRefund(oldBidder, oldBid); } } emit BidPlaced(topBidder, topBid); } function settle() external { require(endTime < block.timestamp); require(!settled); settled = true; IERC1155(zona).safeTransferFrom(address(this), topBidder, id, 3, ""); } function initalize() external onlyOwner { require(!initalized); initalized = true; IZooOfNeuralAutomata(zona).mint(address(this), id, 3); } function withdraw() external onlyOwner { require(endTime < block.timestamp); payable(owner).transfer(address(this).balance); } function nextPrice() public view returns(uint256) { return topBid + (topBid/20); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.2; import "./IERC165.sol"; /// @title ERC-1155 Multi Token Standard /// @dev See https://eips.ethereum.org/EIPS/eip-1155 /// Note: The ERC-165 identifier for this interface is 0xd9b67a26. interface IERC1155 is IERC165 { /// @dev /// - Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). /// - The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender). /// - The `_from` argument MUST be the address of the holder whose balance is decreased. /// - The `_to` argument MUST be the address of the recipient whose balance is increased. /// - The `_id` argument MUST be the token type being transferred. /// - The `_value` argument MUST be the number of tokens the holder balance is decreased by and match what the recipient balance is increased by. /// - When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). /// - When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). event TransferSingle( address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value ); /// @dev /// - Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). /// - The `_operator` argument MUST be the address of an account/contract that is approved to make the transfer (SHOULD be msg.sender). /// - The `_from` argument MUST be the address of the holder whose balance is decreased. /// - The `_to` argument MUST be the address of the recipient whose balance is increased. /// - The `_ids` argument MUST be the list of tokens being transferred. /// - The `_values` argument MUST be the list of number of tokens (matching the list and order of tokens specified in _ids) the holder balance is decreased by and match what the recipient balance is increased by. /// - When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). /// - When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). event TransferBatch( address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values ); /// @dev MUST emit when approval for a second party/operator address to manage all tokens for an owner address is enabled or disabled (absence of an event assumes disabled). event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /// @dev MUST emit when the URI is updated for a token ID. URIs are defined in RFC 3986. /// The URI MUST point to a JSON file that conforms to the "ERC-1155 Metadata URI JSON Schema". event URI(string _value, uint256 indexed _id); /// @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call). /// @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). /// - MUST revert if `_to` is the zero address. /// - MUST revert if balance of holder for token `_id` is lower than the `_value` sent. /// - MUST revert on any other error. /// - MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard). /// - After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC1155Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). /// @param _from Source address /// @param _to Target address /// @param _id ID of the token type /// @param _value Transfer amount /// @param _data Additional data with no specified format, MUST be sent unaltered in call to `onERC1155Received` on `_to` function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external; /// @notice Transfers `_values` amount(s) of `_ids` from the `_from` address to the `_to` address specified (with safety call). /// @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). /// - MUST revert if `_to` is the zero address. /// - MUST revert if length of `_ids` is not the same as length of `_values`. /// - MUST revert if any of the balance(s) of the holder(s) for token(s) in `_ids` is lower than the respective amount(s) in `_values` sent to the recipient. /// - MUST revert on any other error. /// - MUST emit `TransferSingle` or `TransferBatch` event(s) such that all the balance changes are reflected (see "Safe Transfer Rules" section of the standard). /// - Balance changes and events MUST follow the ordering of the arrays (_ids[0]/_values[0] before _ids[1]/_values[1], etc). /// - After the above conditions for the transfer(s) in the batch are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call the relevant `ERC1155TokenReceiver` hook(s) on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). /// @param _from Source address /// @param _to Target address /// @param _ids IDs of each token type (order and length must match _values array) /// @param _values Transfer amounts per token type (order and length must match _ids array) /// @param _data Additional data with no specified format, MUST be sent unaltered in call to the `ERC1155TokenReceiver` hook(s) on `_to` function safeBatchTransferFrom( address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data ) external; /// @notice Get the balance of an account's tokens. /// @param _owner The address of the token holder /// @param _id ID of the token /// @return The _owner's balance of the token type requested function balanceOf(address _owner, uint256 _id) external view returns (uint256); /// @notice Get the balance of multiple account/token pairs /// @param _owners The addresses of the token holders /// @param _ids ID of the tokens /// @return The _owner's balance of the token types requested (i.e. balance for each (owner, id) pair) function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory); /// @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens. /// @dev MUST emit the ApprovalForAll event on success. /// @param _operator Address to add to the set of authorized operators /// @param _approved True if the operator is approved, false to revoke approval function setApprovalForAll(address _operator, bool _approved) external; /// @notice Queries the approval status of an operator for a given owner. /// @param _owner The owner of the tokens /// @param _operator Address of authorized operator /// @return True if the operator is approved, false if not function isApprovedForAll(address _owner, address _operator) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.2; interface IERC165 { /// @notice Query if a contract implements an interface /// @param interfaceID The interface identifier, as specified in ERC-165 /// @dev Interface identification is specified in ERC-165. This function /// uses less than 30,000 gas. /// @return `true` if the contract implements `interfaceID` and /// `interfaceID` is not 0xffffffff, `false` otherwise function supportsInterface(bytes4 interfaceID) external view returns (bool); }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Simple single owner authorization mixin. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol) abstract contract Owned { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event OwnershipTransferred(address indexed user, address indexed newOwner); /*////////////////////////////////////////////////////////////// OWNERSHIP STORAGE //////////////////////////////////////////////////////////////*/ address public owner; modifier onlyOwner() virtual { require(msg.sender == owner, "UNAUTHORIZED"); _; } /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner) { owner = _owner; emit OwnershipTransferred(address(0), _owner); } /*////////////////////////////////////////////////////////////// OWNERSHIP LOGIC //////////////////////////////////////////////////////////////*/ function transferOwnership(address newOwner) public virtual onlyOwner { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); event URI(string value, uint256 indexed id); /*////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; /*////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) public virtual { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public virtual { require(ids.length == amounts.length, "LENGTH_MISMATCH"); require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); // Storing these outside the loop saves ~15 gas per iteration. uint256 id; uint256 amount; for (uint256 i = 0; i < ids.length; ) { id = ids[i]; amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch(address[] calldata owners, uint256[] calldata ids) public view virtual returns (uint256[] memory balances) { require(owners.length == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < owners.length; ++i) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal virtual { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn( address from, uint256[] memory ids, uint256[] memory amounts ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn( address from, uint256 id, uint256 amount ) internal virtual { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155TokenReceiver { function onERC1155Received( address, address, uint256, uint256, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155BatchReceived.selector; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; struct NCAParams { string seed; string bg; string fg1; string fg2; string matrix; string activation; string rand; string mods; } interface INeuralAutomataEngine { function baseScript() external view returns(string memory); function parameters(NCAParams memory _params) external pure returns(string memory); function p5() external view returns(string memory); function script(NCAParams memory _params) external view returns(string memory); function page(NCAParams memory _params) external view returns(string memory); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; interface IOschuns { event BidPlaced(address _from, uint256 _value); event FailedRefund(address _to, uint256 _value); function endTime() external view returns(uint256); function bidder(address) external returns(bool); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; import {NCAParams} from "./INeuralAutomataEngine.sol"; interface IZooOfNeuralAutomata { function updateEngine(address _engine) external; function updateContractURI(string memory _contractURI) external; function updateParams(uint256 _id, NCAParams memory _params) external; function updateMinter(uint256 _id, address _minter) external; function updateBurner(uint256 _id, address _burner) external; function updateBaseURI(uint256 _id, string memory _baseURI) external; function freeze(uint256 _id) external; function newToken( uint256 _id, NCAParams memory _params, address _minter, address _burner, string memory _baseURI ) external; function mint( address _to, uint256 _id, uint256 _amount ) external; function burn( address _from, uint256 _id, uint256 _amount ) external; }
{ "remappings": [ "ds-test/=lib/solmate/lib/ds-test/src/", "ethfs/=lib/ethfs/", "ethier/=lib/ethfs/packages/contracts/lib/ethier/", "forge-std/=lib/forge-std/src/", "openzeppelin/=lib/ethfs/packages/contracts/lib/openzeppelin-contracts/contracts/", "solady/=lib/ethfs/packages/contracts/lib/solady/src/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_zona","type":"address"},{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"BidPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"FailedRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bidder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"settle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topBidder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zona","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040526636bee158d3185860035534801561001b57600080fd5b50604051610e8b380380610e8b83398101604081905261003a916100c9565b600080546001600160a01b0319166001600160a01b03851690811782556040518592907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b03821660805260a08190526100a161384082610105565b6001555061012b915050565b80516001600160a01b03811681146100c457600080fd5b919050565b6000806000606084860312156100de57600080fd5b6100e7846100ad565b92506100f5602085016100ad565b9150604084015190509250925092565b6000821982111561012657634e487b7160e01b600052601160045260246000fd5b500190565b60805160a051610d266101656000396000818161028d015261050d0152600081816101d4015281816104ab01526109310152610d266000f3fe60806040526004361061010e5760003560e01c8063636bf730116100a55780638f77583911610074578063ef9089d611610059578063ef9089d614610374578063f23a6e6114610389578063f2fde38b146103cf57600080fd5b80638f775839146102dc578063bc197c81146102fb57600080fd5b8063636bf7301461025057806371845bb01461026657806378e979251461027b5780638da5cb5b146102af57600080fd5b80633ccfd60b116100e15780633ccfd60b146101ad57806344b170fe146101c257806358042958146101f65780635be1a0911461023657600080fd5b806301333f061461011357806311da60b41461016a5780631998aeef146101815780633197cbb614610189575b600080fd5b34801561011f57600080fd5b506002546101409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561017657600080fd5b5061017f6103ef565b005b61017f61050a565b34801561019557600080fd5b5061019f60015481565b604051908152602001610161565b3480156101b957600080fd5b5061017f610743565b3480156101ce57600080fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b34801561020257600080fd5b50610226610211366004610a9d565b60056020526000908152604090205460ff1681565b6040519015158152602001610161565b34801561024257600080fd5b506004546102269060ff1681565b34801561025c57600080fd5b5061019f60035481565b34801561027257600080fd5b5061017f610821565b34801561028757600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102bb57600080fd5b506000546101409073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102e857600080fd5b5060045461022690610100900460ff1681565b34801561030757600080fd5b50610343610316366004610b4d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610161565b34801561038057600080fd5b5061019f610960565b34801561039557600080fd5b506103436103a4366004610c08565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b3480156103db57600080fd5b5061017f6103ea366004610a9d565b610983565b42600154106103fd57600080fd5b600454610100900460ff161561041257600080fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556002546040517ff242432a000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff908116602483015261012f60448301526003606483015260a06084830152600060a48301527f0000000000000000000000000000000000000000000000000000000000000000169063f242432a9060c4015b600060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b50505050565b427f0000000000000000000000000000000000000000000000000000000000000000111561053757600080fd5b426001541161054557600080fd5b61054d610960565b34101561055957600080fd5b6002805460038054337fffffffffffffffffffffffff0000000000000000000000000000000000000000841681179094553490915560009283526005602052604090922080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555473ffffffffffffffffffffffffffffffffffffffff909116919061012c906105f3904290610caf565b116106125761012c6001600082825461060c9190610cc6565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8216156106e85760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610688576040519150601f19603f3d011682016040523d82523d6000602084013e61068d565b606091505b50509050806106e6576040805173ffffffffffffffffffffffffffffffffffffffff85168152602081018490527f08148803da5497744918707293c46cccb9d74d3e52302a27354ecd9097a08b0c910160405180910390a15b505b6002546003546040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091527f3fabff0a9c3ecd6814702e247fa9733e5d0aa69e3a38590f92cb18f623a2254d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b42600154106107d757600080fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116914780156108fc02929091818181858888f1935050505015801561081e573d6000803e3d6000fd5b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016107c0565b60045460ff16156108b257600080fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781556040517f156e29f6000000000000000000000000000000000000000000000000000000008152309181019190915261012f60248201526003604482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063156e29f6906064016104d6565b600060146003546109719190610cde565b60035461097e9190610cc6565b905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016107c0565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a9857600080fd5b919050565b600060208284031215610aaf57600080fd5b610ab882610a74565b9392505050565b60008083601f840112610ad157600080fd5b50813567ffffffffffffffff811115610ae957600080fd5b6020830191508360208260051b8501011115610b0457600080fd5b9250929050565b60008083601f840112610b1d57600080fd5b50813567ffffffffffffffff811115610b3557600080fd5b602083019150836020828501011115610b0457600080fd5b60008060008060008060008060a0898b031215610b6957600080fd5b610b7289610a74565b9750610b8060208a01610a74565b9650604089013567ffffffffffffffff80821115610b9d57600080fd5b610ba98c838d01610abf565b909850965060608b0135915080821115610bc257600080fd5b610bce8c838d01610abf565b909650945060808b0135915080821115610be757600080fd5b50610bf48b828c01610b0b565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610c2157600080fd5b610c2a87610a74565b9550610c3860208801610a74565b94506040870135935060608701359250608087013567ffffffffffffffff811115610c6257600080fd5b610c6e89828a01610b0b565b979a9699509497509295939492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610cc157610cc1610c80565b500390565b60008219821115610cd957610cd9610c80565b500190565b600082610d14577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c634300080f000a0000000000000000000000000aa0bc25769c52e623d09a9764e079a221bea2a1000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f270000000000000000000000000000000000000000000000000000000063cd87b0
Deployed Bytecode
0x60806040526004361061010e5760003560e01c8063636bf730116100a55780638f77583911610074578063ef9089d611610059578063ef9089d614610374578063f23a6e6114610389578063f2fde38b146103cf57600080fd5b80638f775839146102dc578063bc197c81146102fb57600080fd5b8063636bf7301461025057806371845bb01461026657806378e979251461027b5780638da5cb5b146102af57600080fd5b80633ccfd60b116100e15780633ccfd60b146101ad57806344b170fe146101c257806358042958146101f65780635be1a0911461023657600080fd5b806301333f061461011357806311da60b41461016a5780631998aeef146101815780633197cbb614610189575b600080fd5b34801561011f57600080fd5b506002546101409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561017657600080fd5b5061017f6103ef565b005b61017f61050a565b34801561019557600080fd5b5061019f60015481565b604051908152602001610161565b3480156101b957600080fd5b5061017f610743565b3480156101ce57600080fd5b506101407f000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f2781565b34801561020257600080fd5b50610226610211366004610a9d565b60056020526000908152604090205460ff1681565b6040519015158152602001610161565b34801561024257600080fd5b506004546102269060ff1681565b34801561025c57600080fd5b5061019f60035481565b34801561027257600080fd5b5061017f610821565b34801561028757600080fd5b5061019f7f0000000000000000000000000000000000000000000000000000000063cd87b081565b3480156102bb57600080fd5b506000546101409073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102e857600080fd5b5060045461022690610100900460ff1681565b34801561030757600080fd5b50610343610316366004610b4d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610161565b34801561038057600080fd5b5061019f610960565b34801561039557600080fd5b506103436103a4366004610c08565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b3480156103db57600080fd5b5061017f6103ea366004610a9d565b610983565b42600154106103fd57600080fd5b600454610100900460ff161561041257600080fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001781556002546040517ff242432a000000000000000000000000000000000000000000000000000000008152309281019290925273ffffffffffffffffffffffffffffffffffffffff908116602483015261012f60448301526003606483015260a06084830152600060a48301527f000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f27169063f242432a9060c4015b600060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b50505050565b427f0000000000000000000000000000000000000000000000000000000063cd87b0111561053757600080fd5b426001541161054557600080fd5b61054d610960565b34101561055957600080fd5b6002805460038054337fffffffffffffffffffffffff0000000000000000000000000000000000000000841681179094553490915560009283526005602052604090922080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091555473ffffffffffffffffffffffffffffffffffffffff909116919061012c906105f3904290610caf565b116106125761012c6001600082825461060c9190610cc6565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8216156106e85760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610688576040519150601f19603f3d011682016040523d82523d6000602084013e61068d565b606091505b50509050806106e6576040805173ffffffffffffffffffffffffffffffffffffffff85168152602081018490527f08148803da5497744918707293c46cccb9d74d3e52302a27354ecd9097a08b0c910160405180910390a15b505b6002546003546040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091527f3fabff0a9c3ecd6814702e247fa9733e5d0aa69e3a38590f92cb18f623a2254d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b42600154106107d757600080fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116914780156108fc02929091818181858888f1935050505015801561081e573d6000803e3d6000fd5b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016107c0565b60045460ff16156108b257600080fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781556040517f156e29f6000000000000000000000000000000000000000000000000000000008152309181019190915261012f60248201526003604482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f27169063156e29f6906064016104d6565b600060146003546109719190610cde565b60035461097e9190610cc6565b905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016107c0565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a9857600080fd5b919050565b600060208284031215610aaf57600080fd5b610ab882610a74565b9392505050565b60008083601f840112610ad157600080fd5b50813567ffffffffffffffff811115610ae957600080fd5b6020830191508360208260051b8501011115610b0457600080fd5b9250929050565b60008083601f840112610b1d57600080fd5b50813567ffffffffffffffff811115610b3557600080fd5b602083019150836020828501011115610b0457600080fd5b60008060008060008060008060a0898b031215610b6957600080fd5b610b7289610a74565b9750610b8060208a01610a74565b9650604089013567ffffffffffffffff80821115610b9d57600080fd5b610ba98c838d01610abf565b909850965060608b0135915080821115610bc257600080fd5b610bce8c838d01610abf565b909650945060808b0135915080821115610be757600080fd5b50610bf48b828c01610b0b565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610c2157600080fd5b610c2a87610a74565b9550610c3860208801610a74565b94506040870135935060608701359250608087013567ffffffffffffffff811115610c6257600080fd5b610c6e89828a01610b0b565b979a9699509497509295939492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610cc157610cc1610c80565b500390565b60008219821115610cd957610cd9610c80565b500190565b600082610d14577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea164736f6c634300080f000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000aa0bc25769c52e623d09a9764e079a221bea2a1000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f270000000000000000000000000000000000000000000000000000000063cd87b0
-----Decoded View---------------
Arg [0] : _owner (address): 0x0aa0Bc25769C52e623D09A9764e079A221BeA2a1
Arg [1] : _zona (address): 0xacbD6089ac5d2dE7f49B53269416DbaeA4da9f27
Arg [2] : _startTime (uint256): 1674414000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000aa0bc25769c52e623d09a9764e079a221bea2a1
Arg [1] : 000000000000000000000000acbd6089ac5d2de7f49b53269416dbaea4da9f27
Arg [2] : 0000000000000000000000000000000000000000000000000000000063cd87b0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.