Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 3,698 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 23996108 | 47 days ago | IN | 0 ETH | 0.00007353 | ||||
| Withdraw | 23996038 | 47 days ago | IN | 0 ETH | 0.00007333 | ||||
| Withdraw | 23983215 | 49 days ago | IN | 0 ETH | 0.00000664 | ||||
| Transfer | 23970214 | 51 days ago | IN | 0.01163702 ETH | 0.00005194 | ||||
| Transfer | 23967447 | 51 days ago | IN | 0.00031058 ETH | 0.00005262 | ||||
| Transfer | 23964269 | 52 days ago | IN | 0.0003208 ETH | 0.00004781 | ||||
| Transfer | 23964107 | 52 days ago | IN | 0.00032436 ETH | 0.00000224 | ||||
| Transfer | 23964089 | 52 days ago | IN | 0.00038724 ETH | 0.00000247 | ||||
| Transfer | 23964089 | 52 days ago | IN | 0.00032436 ETH | 0.00004731 | ||||
| Transfer | 23964089 | 52 days ago | IN | 0.00684138 ETH | 0.00004731 | ||||
| Transfer | 23964089 | 52 days ago | IN | 0.00038724 ETH | 0.00004731 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00038724 ETH | 0.00000455 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00077449 ETH | 0.00000245 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00193623 ETH | 0.00000408 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00032436 ETH | 0.00004732 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00032436 ETH | 0.00003607 | ||||
| Transfer | 23964088 | 52 days ago | IN | 0.00037069 ETH | 0.00004732 | ||||
| Transfer | 23964087 | 52 days ago | IN | 0.00032436 ETH | 0.00004718 | ||||
| Transfer | 23964086 | 52 days ago | IN | 0.00032436 ETH | 0.00000193 | ||||
| Transfer | 23964086 | 52 days ago | IN | 0.00677849 ETH | 0.00000193 | ||||
| Transfer | 23964086 | 52 days ago | IN | 0.00074139 ETH | 0.00000193 | ||||
| Transfer | 23964086 | 52 days ago | IN | 0.00032436 ETH | 0.00002219 | ||||
| Transfer | 23964085 | 52 days ago | IN | 0.00129082 ETH | 0.00000427 | ||||
| Transfer | 23964085 | 52 days ago | IN | 0.00038724 ETH | 0.00000427 | ||||
| Transfer | 23964085 | 52 days ago | IN | 0.00032436 ETH | 0.00004474 |
Latest 17 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23996108 | 47 days ago | 1.96555489 ETH | ||||
| Transfer | 23996038 | 47 days ago | 11.03460615 ETH | ||||
| Transfer | 23983215 | 49 days ago | 0.54738689 ETH | ||||
| Transfer | 23964013 | 52 days ago | 0.0003208 ETH | ||||
| Transfer | 23957811 | 53 days ago | 0.00192131 ETH | ||||
| Transfer | 23956005 | 53 days ago | 0.00036935 ETH | ||||
| Transfer | 23955307 | 53 days ago | 0.00990684 ETH | ||||
| Transfer | 23955292 | 53 days ago | 0.00032116 ETH | ||||
| Transfer | 23953785 | 53 days ago | 0.00038513 ETH | ||||
| Transfer | 23953369 | 53 days ago | 0.00036932 ETH | ||||
| Transfer | 23953298 | 53 days ago | 0.00032315 ETH | ||||
| Transfer | 23942464 | 55 days ago | 0.04238505 ETH | ||||
| Transfer | 23942413 | 55 days ago | 0.04238505 ETH | ||||
| Transfer | 23940096 | 55 days ago | 0.00061246 ETH | ||||
| Transfer | 23938711 | 55 days ago | 0.00092011 ETH | ||||
| Transfer | 23938571 | 56 days ago | 0.00108114 ETH | ||||
| Transfer | 23935253 | 56 days ago | 0.04358001 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PaymentVault
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 95000 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
/// @title PaymentVault
/// @notice Simple vault that accepts ETH payments and allows the owner to withdraw to arbitrary recipients.
contract PaymentVault is Ownable {
/// @dev Emitted when `sender` makes a payment of `amount` ETH.
event Payment(address indexed sender, uint256 amount);
/// @dev Emitted when the owner withdraws `amount` of ETH to `recipient`.
event Withdrawal(address indexed recipient, uint256 amount);
constructor() Ownable(msg.sender) {}
/// @notice Make a payment to the vault.
function pay() external payable {
require(msg.value > 0, "PaymentVault: payment value must be positive");
emit Payment(msg.sender, msg.value);
}
/// @notice Withdraw `amount` of ETH to `recipient`.
/// @param recipient Address that will receive the withdrawn ETH.
/// @param amount Amount of ETH (in wei) to withdraw.
function withdraw(address payable recipient, uint256 amount) external onlyOwner {
require(recipient != address(0), "PaymentVault: recipient is zero address");
require(amount > 0, "PaymentVault: amount is zero");
require(address(this).balance >= amount, "PaymentVault: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "PaymentVault: ETH transfer failed");
emit Withdrawal(recipient, amount);
}
/// @notice Returns the current ETH balance held by the vault.
function balance() external view returns (uint256) {
return address(this).balance;
}
/// @notice Receive function enabling direct ETH transfers without calldata.
receive() external payable {
require(msg.value > 0, "PaymentVault: payment value must be positive");
emit Payment(msg.sender, msg.value);
}
/// @notice Fallback function to accept ETH with calldata.
fallback() external payable {
require(msg.value > 0, "PaymentVault: payment value must be positive");
emit Payment(msg.sender, msg.value);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"evmVersion": "cancun",
"optimizer": {
"enabled": true,
"runs": 95000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"project/:@openzeppelin/contracts/=npm/@openzeppelin/[email protected]/"
]
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ff8061009b5f395ff3fe608060405260043610610068575f3560e01c8063b69ef8a811610042578063b69ef8a81461021d578063f2fde38b14610237578063f3fef3a31461025657610138565b80631b9265b8146101c7578063715018a6146101d15780638da5cb5b146101e557610138565b36610138575f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2005b5f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b6101cf610275565b005b3480156101dc575f5ffd5b506101cf61033b565b3480156101f0575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610228575f5ffd5b50604051478152602001610214565b348015610242575f5ffd5b506101cf61025136600461077d565b61034e565b348015610261575f5ffd5b506101cf61027036600461079f565b6103b1565b5f3411610304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2565b610343610696565b61034c5f6106e8565b565b610356610696565b73ffffffffffffffffffffffffffffffffffffffff81166103a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016100f8565b6103ae816106e8565b50565b6103b9610696565b73ffffffffffffffffffffffffffffffffffffffff821661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5061796d656e745661756c743a20726563697069656e74206973207a65726f2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016100f8565b5f81116104c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061796d656e745661756c743a20616d6f756e74206973207a65726f0000000060448201526064016100f8565b80471015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f5061796d656e745661756c743a20696e73756666696369656e742062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146105ab576040519150601f19603f3d011682016040523d82523d5f602084013e6105b0565b606091505b5050905080610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5061796d656e745661756c743a20455448207472616e73666572206661696c6560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658360405161068991815260200190565b60405180910390a2505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461034c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016100f8565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146103ae575f5ffd5b5f6020828403121561078d575f5ffd5b81356107988161075c565b9392505050565b5f5f604083850312156107b0575f5ffd5b82356107bb8161075c565b94602093909301359350505056fea26469706673582212207835ff02a3fdc904682be9cccda9eecbaa03fb46c92f95b761261bfb9a25140464736f6c634300081c0033
Deployed Bytecode
0x608060405260043610610068575f3560e01c8063b69ef8a811610042578063b69ef8a81461021d578063f2fde38b14610237578063f3fef3a31461025657610138565b80631b9265b8146101c7578063715018a6146101d15780638da5cb5b146101e557610138565b36610138575f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2005b5f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b6101cf610275565b005b3480156101dc575f5ffd5b506101cf61033b565b3480156101f0575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610228575f5ffd5b50604051478152602001610214565b348015610242575f5ffd5b506101cf61025136600461077d565b61034e565b348015610261575f5ffd5b506101cf61027036600461079f565b6103b1565b5f3411610304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2565b610343610696565b61034c5f6106e8565b565b610356610696565b73ffffffffffffffffffffffffffffffffffffffff81166103a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016100f8565b6103ae816106e8565b50565b6103b9610696565b73ffffffffffffffffffffffffffffffffffffffff821661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5061796d656e745661756c743a20726563697069656e74206973207a65726f2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016100f8565b5f81116104c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061796d656e745661756c743a20616d6f756e74206973207a65726f0000000060448201526064016100f8565b80471015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f5061796d656e745661756c743a20696e73756666696369656e742062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146105ab576040519150601f19603f3d011682016040523d82523d5f602084013e6105b0565b606091505b5050905080610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5061796d656e745661756c743a20455448207472616e73666572206661696c6560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658360405161068991815260200190565b60405180910390a2505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461034c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016100f8565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146103ae575f5ffd5b5f6020828403121561078d575f5ffd5b81356107988161075c565b9392505050565b5f5f604083850312156107b0575f5ffd5b82356107bb8161075c565b94602093909301359350505056fea26469706673582212207835ff02a3fdc904682be9cccda9eecbaa03fb46c92f95b761261bfb9a25140464736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Token Allocations
S
100.00%
Multichain Portfolio | 35 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.