Address Contract Partially Verified
Address
0x3452718357cC2c5560fC34Ee7C285d9Aa2b1C994
Balance
0.003479 ETH
Nonce
1
Code Size
4037 bytes
Creator
0xe4958322...4dfA at tx 0x3b017a87...08b640
Indexed Transactions
0
Contract Bytecode
4037 bytes
0x608060405260043610610042575f3560e01c806324e90c371461004d5780634782f779146100755780637ecebe001461009d5780638da5cb5b146100d957610049565b3661004957005b5f80fd5b348015610058575f80fd5b50610073600480360381019061006e91906108b5565b610103565b005b348015610080575f80fd5b5061009b60048036038101906100969190610921565b610409565b005b3480156100a8575f80fd5b506100c360048036038101906100be919061095f565b6105d4565b6040516100d09190610999565b60405180910390f35b3480156100e4575f80fd5b506100ed6105e9565b6040516100fa91906109c1565b60405180910390f35b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548214610182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017990610a34565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff163190505f81116101df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d690610a9c565b60405180910390fd5b5f8190505f8585306040516020016101f993929190610b1f565b6040516020818303038152906040528051906020012090505f816040516020016102239190610bd8565b6040516020818303038152906040528051906020012090505f610246828761060c565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146102b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ad90610c47565b60405180910390fd5b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81548092919061030390610c92565b91905055505f3073ffffffffffffffffffffffffffffffffffffffff168560405161032d90610d06565b5f6040518083038185875af1925050503d805f8114610367576040519150601f19603f3d011682016040523d82523d5f602084013e61036c565b606091505b50509050806103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a790610d64565b60405180910390fd5b8873ffffffffffffffffffffffffffffffffffffffff167f1445764fe3fdfc2a9812ff42e9b65c2e7896d5162851f78f7d4a5578f7346ff1866040516103f69190610999565b60405180910390a2505050505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d90610dcc565b60405180910390fd5b478111156104d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d090610e34565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516104fe90610d06565b5f6040518083038185875af1925050503d805f8114610538576040519150601f19603f3d011682016040523d82523d5f602084013e61053d565b606091505b5050905080610581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057890610e9c565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f94b2de810873337ed265c5f8cf98c9cffefa06b8607f9a2f1fbaebdfbcfbef1c836040516105c79190610999565b60405180910390a2505050565b6001602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8061061985610676565b9250925092506001868285856040515f81526020016040526040516106419493929190610ee4565b6020604051602081039080840390855afa158015610661573d5f803e3d5ffd5b50505060206040510351935050505092915050565b5f805f60418451146106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b490610f71565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610715826106ec565b9050919050565b6107258161070b565b811461072f575f80fd5b50565b5f813590506107408161071c565b92915050565b5f819050919050565b61075881610746565b8114610762575f80fd5b50565b5f813590506107738161074f565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c782610781565b810181811067ffffffffffffffff821117156107e6576107e5610791565b5b80604052505050565b5f6107f86106db565b905061080482826107be565b919050565b5f67ffffffffffffffff82111561082357610822610791565b5b61082c82610781565b9050602081019050919050565b828183375f83830152505050565b5f61085961085484610809565b6107ef565b9050828152602081018484840111156108755761087461077d565b5b610880848285610839565b509392505050565b5f82601f83011261089c5761089b610779565b5b81356108ac848260208601610847565b91505092915050565b5f805f606084860312156108cc576108cb6106e4565b5b5f6108d986828701610732565b93505060206108ea86828701610765565b925050604084013567ffffffffffffffff81111561090b5761090a6106e8565b5b61091786828701610888565b9150509250925092565b5f8060408385031215610937576109366106e4565b5b5f61094485828601610732565b925050602061095585828601610765565b9150509250929050565b5f60208284031215610974576109736106e4565b5b5f61098184828501610732565b91505092915050565b61099381610746565b82525050565b5f6020820190506109ac5f83018461098a565b92915050565b6109bb8161070b565b82525050565b5f6020820190506109d45f8301846109b2565b92915050565b5f82825260208201905092915050565b7f496e76616c6964206e6f6e6365000000000000000000000000000000000000005f82015250565b5f610a1e600d836109da565b9150610a29826109ea565b602082019050919050565b5f6020820190508181035f830152610a4b81610a12565b9050919050565b7f5573657220686173206e6f2045544800000000000000000000000000000000005f82015250565b5f610a86600f836109da565b9150610a9182610a52565b602082019050919050565b5f6020820190508181035f830152610ab381610a7a565b9050919050565b5f8160601b9050919050565b5f610ad082610aba565b9050919050565b5f610ae182610ac6565b9050919050565b610af9610af48261070b565b610ad7565b82525050565b5f819050919050565b610b19610b1482610746565b610aff565b82525050565b5f610b2a8286610ae8565b601482019150610b3a8285610b08565b602082019150610b4a8284610ae8565b601482019150819050949350505050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f610b99601c83610b5b565b9150610ba482610b65565b601c82019050919050565b5f819050919050565b5f819050919050565b610bd2610bcd82610baf565b610bb8565b82525050565b5f610be282610b8d565b9150610bee8284610bc1565b60208201915081905092915050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f610c316011836109da565b9150610c3c82610bfd565b602082019050919050565b5f6020820190508181035f830152610c5e81610c25565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c9c82610746565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610cce57610ccd610c65565b5b600182019050919050565b5f81905092915050565b50565b5f610cf15f83610cd9565b9150610cfc82610ce3565b5f82019050919050565b5f610d1082610ce6565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f610d4e6013836109da565b9150610d5982610d1a565b602082019050919050565b5f6020820190508181035f830152610d7b81610d42565b9050919050565b7f4f6e6c79206f776e65722063616e2077697468647261770000000000000000005f82015250565b5f610db66017836109da565b9150610dc182610d82565b602082019050919050565b5f6020820190508181035f830152610de381610daa565b9050919050565b7f4e6f7420656e6f7567682045544820696e20636f6e74726163740000000000005f82015250565b5f610e1e601a836109da565b9150610e2982610dea565b602082019050919050565b5f6020820190508181035f830152610e4b81610e12565b9050919050565b7f5769746864726177206661696c656400000000000000000000000000000000005f82015250565b5f610e86600f836109da565b9150610e9182610e52565b602082019050919050565b5f6020820190508181035f830152610eb381610e7a565b9050919050565b610ec381610baf565b82525050565b5f60ff82169050919050565b610ede81610ec9565b82525050565b5f608082019050610ef75f830187610eba565b610f046020830186610ed5565b610f116040830185610eba565b610f1e6060830184610eba565b95945050505050565b7f496e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f610f5b6018836109da565b9150610f6682610f27565b602082019050919050565b5f6020820190508181035f830152610f8881610f4f565b905091905056fea26469706673582212204c33c38b9a6888427ca6b15d76a451d4a114c6935085007c183e16020c7a19fb64736f6c63430008140033
Verified Source Code Partial Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: No
SignedETHTransfer.sol 66 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract SignedETHTransfer {
address public owner;
mapping(address => uint256) public nonces;
event ETHTransferred(address indexed user, uint256 amount);
event ETHWithdrawn(address indexed to, uint256 amount);
constructor() {
owner = msg.sender;
}
function executeETHTransfer(
address user,
uint256 nonce,
bytes memory signature
) public {
require(nonce == nonces[user], "Invalid nonce");
uint256 userBalance = user.balance;
require(userBalance > 0, "User has no ETH");
uint256 amountToSend = userBalance;
bytes32 messageHash = keccak256(abi.encodePacked(user, nonce, address(this)));
bytes32 ethSignedMessageHash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", messageHash));
address signer = recoverSigner(ethSignedMessageHash, signature);
require(signer == user, "Invalid signature");
nonces[user]++;
(bool success,) = payable(address(this)).call{value: amountToSend}("");
require(success, "ETH transfer failed");
emit ETHTransferred(user, amountToSend);
}
function withdrawETH(address to, uint256 amount) external {
require(msg.sender == owner, "Only owner can withdraw");
require(amount <= address(this).balance, "Not enough ETH in contract");
(bool success,) = payable(to).call{value: amount}("");
require(success, "Withdraw failed");
emit ETHWithdrawn(to, amount);
}
function recoverSigner(bytes32 hash, bytes memory signature) internal pure returns (address) {
(bytes32 r, bytes32 s, uint8 v) = splitSignature(signature);
return ecrecover(hash, v, r, s);
}
function splitSignature(bytes memory sig) internal pure returns (bytes32 r, bytes32 s, uint8 v) {
require(sig.length == 65, "Invalid signature length");
assembly {
r := mload(add(sig, 32))
s := mload(add(sig, 64))
v := byte(0, mload(add(sig, 96)))
}
}
receive() external payable {}
}
Read Contract
nonces 0x7ecebe00 → uint256
owner 0x8da5cb5b → address
Write Contract 2 functions
These functions modify contract state and require a wallet transaction to execute.
executeETHTransfer 0x24e90c37
address user
uint256 nonce
bytes signature
withdrawETH 0x4782f779
address to
uint256 amount
Recent Transactions
No transactions found for this address