Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 16895282 | 2 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
EtherForwarder
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 999 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
/**
* @title EtherForwarder
* @notice A contract that forwards received Ether to a specified address
* @author Biconomy
*/
contract EtherForwarder {
error ZeroAddress();
error ForwardFailed();
/**
* @notice Forwards the received Ether to the specified destination address
* @param destination The address to forward the Ether to
*/
function forward(address destination) external payable {
if (destination == address(0)) revert ZeroAddress();
// Forward the Ether using assembly
bool success;
assembly {
// Gas-efficient way to forward ETH
success := call(
gas(), // Forward all available gas
destination, // Destination address
callvalue(), // Amount of ETH to send
0, // No data to send
0, // No data size
0, // No data to receive
0 // No data size to receive
)
}
if (!success) revert ForwardFailed();
}
/**
* @notice Prevents accidental Ether transfers without a destination
* intentionally using sting and not a custom error here
*/
receive() external payable {
// solhint-disable-next-line gas-custom-errors, reason-string, gas-small-strings
revert("Use forward() function to send Ether");
}
/**
* @notice Prevents accidental Ether transfers without a destination
* intentionally using sting and not a custom error here
*/
fallback() external payable {
// solhint-disable-next-line gas-custom-errors, reason-string, gas-small-strings
revert("Use forward() function to send Ether");
}
}{
"remappings": [
"forge-std/=node_modules/forge-std/src/",
"account-abstraction/=node_modules/account-abstraction/contracts/",
"solady/=node_modules/solady/src/",
"sentinellist/=node_modules/@rhinestone/sentinellist/src/",
"module-bases/=node_modules/@rhinestone/module-bases/src/",
"erc7739Validator/=node_modules/@erc7579/erc7739-validator-base/src/",
"EnumerableSet4337/=node_modules/@erc7579/enumerablemap4337/src/",
"erc7579/=node_modules/@erc7579/implementation/src/",
"byteslib/=node_modules/solidity-bytes-utils/contracts/",
"rlp-reader/=node_modules/solidity-rlp/contracts/",
"murky-trees/=node_modules/murky/src/",
"solarray/=node_modules/solarray/src/",
"excessively-safe-call/=node_modules/excessively-safe-call/src/",
"@ERC4337/=node_modules/@ERC4337/",
"@erc7579/=node_modules/@erc7579/",
"@gnosis.pm/=node_modules/@gnosis.pm/",
"@openzeppelin/=node_modules/@openzeppelin/",
"@prb/=node_modules/@prb/",
"@rhinestone/=node_modules/@rhinestone/",
"@safe-global/=node_modules/@safe-global/",
"@zerodev/=node_modules/@zerodev/",
"account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/",
"ds-test/=node_modules/ds-test/",
"hardhat-deploy/=node_modules/hardhat-deploy/",
"hardhat/=node_modules/hardhat/",
"solidity-bytes-utils/=node_modules/solidity-bytes-utils/",
"solidity-rlp/=node_modules/solidity-rlp/"
],
"optimizer": {
"enabled": true,
"runs": 999
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "none",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"ForwardFailed","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"forward","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080806040523460155761014d908161001a8239f35b5f80fdfe60806040526004361015610018575b366100bd576100bd565b5f3560e01c63101e89520361000e5760203660031901126100b95760043573ffffffffffffffffffffffffffffffffffffffff81168082036100b95715610091575f8080809334905af11561006957005b7f096dc0e1000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f55736520666f727761726428292066756e6374696f6e20746f2073656e64204560448201527f74686572000000000000000000000000000000000000000000000000000000006064820152fdfea164736f6c634300081b000a
Deployed Bytecode
0x60806040526004361015610018575b366100bd576100bd565b5f3560e01c63101e89520361000e5760203660031901126100b95760043573ffffffffffffffffffffffffffffffffffffffff81168082036100b95715610091575f8080809334905af11561006957005b7f096dc0e1000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f55736520666f727761726428292066756e6374696f6e20746f2073656e64204560448201527f74686572000000000000000000000000000000000000000000000000000000006064820152fdfea164736f6c634300081b000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.