ETH Price: $3,336.95 (-2.83%)

Contract

0xF394B10A1c53d83dbAe627C5119226ff47Dfb0fE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw164654942023-01-22 23:02:35724 days ago1674428555IN
0xF394B10A...f47Dfb0fE
0 ETH0.0004864214.97166503
Settle164654912023-01-22 23:01:59724 days ago1674428519IN
0xF394B10A...f47Dfb0fE
0 ETH0.0009495115.23907749
Bid164653392023-01-22 22:31:11724 days ago1674426671IN
0xF394B10A...f47Dfb0fE
0.1069 ETH0.0006654515.82418508
Bid164652392023-01-22 22:11:11724 days ago1674425471IN
0xF394B10A...f47Dfb0fE
0.069 ETH0.0006741114.23595364
Bid164649912023-01-22 21:20:59724 days ago1674422459IN
0xF394B10A...f47Dfb0fE
0.042 ETH0.0009867620.83855939
Bid164649242023-01-22 21:07:35724 days ago1674421655IN
0xF394B10A...f47Dfb0fE
0.04 ETH0.0014052820.89555638
Bid164649012023-01-22 21:02:47724 days ago1674421367IN
0xF394B10A...f47Dfb0fE
0.03047 ETH0.0014245521.18207138
Bid164647452023-01-22 20:31:11725 days ago1674419471IN
0xF394B10A...f47Dfb0fE
0.02426 ETH0.0012238418.19762842
Bid164645842023-01-22 19:58:47725 days ago1674417527IN
0xF394B10A...f47Dfb0fE
0.0231 ETH0.0007990416.87419154
Bid164645632023-01-22 19:54:35725 days ago1674417275IN
0xF394B10A...f47Dfb0fE
0.022 ETH0.0010593115.75121338
Bid164644092023-01-22 19:23:23725 days ago1674415403IN
0xF394B10A...f47Dfb0fE
0.02095 ETH0.0011073916.46603423
Bid164643632023-01-22 19:14:11725 days ago1674414851IN
0xF394B10A...f47Dfb0fE
0.01995 ETH0.0019502928.99940557
Bid164643302023-01-22 19:07:35725 days ago1674414455IN
0xF394B10A...f47Dfb0fE
0.019 ETH0.0011296616.79723857
Bid164643192023-01-22 19:05:23725 days ago1674414323IN
0xF394B10A...f47Dfb0fE
0.01784 ETH0.0010918216.23460298
Bid164643062023-01-22 19:02:35725 days ago1674414155IN
0xF394B10A...f47Dfb0fE
0.01699 ETH0.0009906814.73069079
Bid164643032023-01-22 19:01:59725 days ago1674414119IN
0xF394B10A...f47Dfb0fE
0.01618 ETH0.0012201216.28371488
Initalize164631112023-01-22 15:02:47725 days ago1674399767IN
0xF394B10A...f47Dfb0fE
0 ETH0.0014795319.01059044

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
164654942023-01-22 23:02:35724 days ago1674428555
0xF394B10A...f47Dfb0fE
0.1069 ETH
164653392023-01-22 22:31:11724 days ago1674426671
0xF394B10A...f47Dfb0fE
0.069 ETH
164652392023-01-22 22:11:11724 days ago1674425471
0xF394B10A...f47Dfb0fE
0.042 ETH
164649912023-01-22 21:20:59724 days ago1674422459
0xF394B10A...f47Dfb0fE
0.04 ETH
164649242023-01-22 21:07:35724 days ago1674421655
0xF394B10A...f47Dfb0fE
0.03047 ETH
164649012023-01-22 21:02:47724 days ago1674421367
0xF394B10A...f47Dfb0fE
0.02426 ETH
164647452023-01-22 20:31:11725 days ago1674419471
0xF394B10A...f47Dfb0fE
0.0231 ETH
164645842023-01-22 19:58:47725 days ago1674417527
0xF394B10A...f47Dfb0fE
0.022 ETH
164645632023-01-22 19:54:35725 days ago1674417275
0xF394B10A...f47Dfb0fE
0.02095 ETH
164644092023-01-22 19:23:23725 days ago1674415403
0xF394B10A...f47Dfb0fE
0.01995 ETH
164643632023-01-22 19:14:11725 days ago1674414851
0xF394B10A...f47Dfb0fE
0.019 ETH
164643302023-01-22 19:07:35725 days ago1674414455
0xF394B10A...f47Dfb0fE
0.01784 ETH
164643192023-01-22 19:05:23725 days ago1674414323
0xF394B10A...f47Dfb0fE
0.01699 ETH
164643062023-01-22 19:02:35725 days ago1674414155
0xF394B10A...f47Dfb0fE
0.01618 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oschuns

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion
File 1 of 8 : Oschuns.sol
/* 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);
    }
}

File 2 of 8 : IERC1155.sol
// 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);
}

File 3 of 8 : IERC165.sol
// 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);
}

File 4 of 8 : Owned.sol
// 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);
    }
}

File 5 of 8 : ERC1155.sol
// 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;
    }
}

File 6 of 8 : INeuralAutomataEngine.sol
// 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);
}

File 7 of 8 : IOschuns.sol
// 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);
}

File 8 of 8 : IZooOfNeuralAutomata.sol
// 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;
    
}

Settings
{
  "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

Contract ABI

[{"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"}]

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


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.