Abstract Testnet

Contract

0x4cd877c02c2479488bcF1f9F98edb1Da5D1Aff9D

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To

There are no matching entries

2 Internal Transactions found.

Latest 2 internal transactions

Parent Transaction Hash Block From To
56575662025-02-02 23:10:5211 days ago1738537852
0x4cd877c0...a5D1Aff9D
0 ETH
56575662025-02-02 23:10:5211 days ago1738537852  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb9F5840b...3dd3257ef
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
BasicTransferValidator

Compiler Version
v0.8.28+commit.7893614a

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 2 : BasicTransferValidator.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

import {ITransferValidator} from "@creator-token-standards/interfaces/ITransferValidator.sol";


/** @title NFT base contract for all game NFTs. Exposes traits for the NFT and respects GameRegistry/Soulbound access control */

contract BasicTransferValidator is ITransferValidator {

    function applyCollectionTransferPolicy(address caller, address from, address to) external view {

    }

    function validateTransfer(address caller, address from, address to) external view {

    }

    function validateTransfer(address caller, address from, address to, uint256 tokenId) external view {

    }

    function validateTransfer(address caller, address from, address to, uint256 tokenId, uint256 amount) external {

    }

    function beforeAuthorizedTransfer(address operator, address token, uint256 tokenId) external {

    }

    function afterAuthorizedTransfer(address token, uint256 tokenId) external {

    }

    function beforeAuthorizedTransfer(address operator, address token) external {

    }

    function afterAuthorizedTransfer(address token) external {

    }

    function beforeAuthorizedTransfer(address token, uint256 tokenId) external {

    }

    function beforeAuthorizedTransferWithAmount(address token, uint256 tokenId, uint256 amount) external {

    }

    function afterAuthorizedTransferWithAmount(address token, uint256 tokenId) external {

    }
    
}

File 2 of 2 : ITransferValidator.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

interface ITransferValidator {
    function applyCollectionTransferPolicy(address caller, address from, address to) external view;
    function validateTransfer(address caller, address from, address to) external view;
    function validateTransfer(address caller, address from, address to, uint256 tokenId) external view;
    function validateTransfer(address caller, address from, address to, uint256 tokenId, uint256 amount) external;

    function beforeAuthorizedTransfer(address operator, address token, uint256 tokenId) external;
    function afterAuthorizedTransfer(address token, uint256 tokenId) external;
    function beforeAuthorizedTransfer(address operator, address token) external;
    function afterAuthorizedTransfer(address token) external;
    function beforeAuthorizedTransfer(address token, uint256 tokenId) external;
    function beforeAuthorizedTransferWithAmount(address token, uint256 tokenId, uint256 amount) external;
    function afterAuthorizedTransferWithAmount(address token, uint256 tokenId) external;
}

Settings
{
  "viaIR": false,
  "codegen": "yul",
  "remappings": [
    "@limitbreak/creator-token-standards/=lib/creator-token-standards/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "murky/=lib/murky/src/",
    "erc721a/=lib/ERC721A/",
    "@creator-token-standards/=lib/creator-token-standards/src/",
    "@limitbreak/permit-c/=lib/creator-token-standards/lib/PermitC/src/",
    "@opensea/tstorish/=lib/creator-token-standards/lib/tstorish/src/",
    "@rari-capital/solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/",
    "ERC721A/=lib/ERC721A/contracts/",
    "PermitC/=lib/creator-token-standards/lib/PermitC/",
    "creator-token-standards/=lib/creator-token-standards/",
    "erc4626-tests/=lib/murky/lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-gas-metering/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/",
    "forge-zksync-std/=lib/forge-zksync-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/creator-token-standards/lib/PermitC/lib/openzeppelin-contracts/contracts/",
    "solady/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/lib/solady/",
    "solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/src/",
    "tstorish/=lib/creator-token-standards/lib/tstorish/src/"
  ],
  "evmVersion": "cancun",
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"afterAuthorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"afterAuthorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"afterAuthorizedTransferWithAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"applyCollectionTransferPolicy","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"beforeAuthorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"beforeAuthorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"beforeAuthorizedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"beforeAuthorizedTransferWithAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"validateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"validateTransfer","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"validateTransfer","outputs":[],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x0000008003000039000000400030043f0000000100200190000000150000c13d00000060021002700000001b02200197000000040020008c000000620000413d000000000301043b000000e0033002700000001d0030009c0000001d0000a13d0000001e0030009c000000260000213d000000220030009c0000003c0000613d000000230030009c000000390000613d000000240030009c0000002f0000613d000000620000013d0000000001000416000000000001004b000000620000c13d0000002001000039000001000010044300000120000004430000001c01000041000000670001042e000000250030009c000000320000a13d000000260030009c000000390000613d000000270030009c000000470000613d000000280030009c0000002f0000613d000000620000013d0000001f0030009c0000002f0000613d000000200030009c0000004a0000613d000000210030009c000000620000c13d000000640020008c0000003e0000813d000000620000013d000000440020008c0000005b0000813d000000620000013d000000290030009c000000590000613d0000002a0030009c000000620000c13d000000a40020008c0000004c0000813d000000620000013d000000640020008c0000004c0000813d000000620000013d000000440020008c000000620000413d0000000002000416000000000002004b000000620000c13d0000000402100370000000000202043b0000002b0020009c000000620000213d00000024011003700000005f0000013d000000640020008c0000005b0000813d000000620000013d000000840020008c000000620000413d0000000002000416000000000002004b000000620000c13d0000000402100370000000000202043b0000002b0020009c000000620000213d0000002402100370000000000202043b0000002b0020009c000000620000213d00000044011003700000005f0000013d000000240020008c000000620000413d0000000002000416000000000002004b000000620000c13d0000000401100370000000000101043b0000002b0010009c000000640000a13d000000000100001900000068000104300000000001000019000000670001042e0000006600000432000000670001042e000000680001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000005079331400000000000000000000000000000000000000000000000000000000b89c4b0c00000000000000000000000000000000000000000000000000000000b89c4b0d00000000000000000000000000000000000000000000000000000000caee23ea00000000000000000000000000000000000000000000000000000000db5f30a80000000000000000000000000000000000000000000000000000000050793315000000000000000000000000000000000000000000000000000000007c1e14b400000000000000000000000000000000000000000000000000000000b6e39ba100000000000000000000000000000000000000000000000000000000285fb8c700000000000000000000000000000000000000000000000000000000285fb8c80000000000000000000000000000000000000000000000000000000028cc1131000000000000000000000000000000000000000000000000000000003a0e3160000000000000000000000000000000000000000000000000000000000ad38899000000000000000000000000000000000000000000000000000000001854b241000000000000000000000000ffffffffffffffffffffffffffffffffffffffff1a6a05bee52f4433705c3befc50aa0713569b38fc5f7b75ecdcb8b7d95a20f44

Block Transaction 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
[ 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.