Description:
Smart contract deployed on Ethereum.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IERC20 {
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
contract treasuryfwder {
address payable public immutable treasury;
event Forwarded(address indexed from, uint256 amount);
event TokenForwarded(address indexed from, address indexed token, uint256 amount);
constructor(address payable _treasury) {
require(_treasury != address(0), "Invalid treasury");
treasury = _treasury;
}
// receive ETH and forward to treasury
receive() external payable {
(bool ok, ) = treasury.call{value: msg.value}("");
require(ok, "Forward failed");
emit Forwarded(msg.sender, msg.value);
}
// fallback in case someone uses sendTransaction directly
fallback() external payable {
(bool ok, ) = treasury.call{value: msg.value}("");
require(ok, "Forward failed");
emit Forwarded(msg.sender, msg.value);
}
// Optional: let users send ERC20 tokens
function depositToken(address token, uint256 amount) external {
require(amount > 0, "Invalid amount");
require(token != address(0), "Invalid token");
bool ok = IERC20(token).transferFrom(msg.sender, treasury, amount);
require(ok, "Token transfer failed");
emit TokenForwarded(msg.sender, token, amount);
}
}
Submitted on: 2025-10-14 11:41:57
Comments
Log in to comment.
No comments yet.