Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 4,387 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Deploy | 28256737 | 1 hr ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28256041 | 1 hr ago | IN | 0.00004 ETH | 0.00000307 | ||||
| Deploy | 28255155 | 2 hrs ago | IN | 0.00004 ETH | 0.00000325 | ||||
| Deploy | 28252852 | 3 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28252336 | 4 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28251282 | 4 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28250225 | 5 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28244280 | 9 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28240737 | 11 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28240089 | 12 hrs ago | IN | 0.00004 ETH | 0.00000369 | ||||
| Deploy | 28238520 | 13 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28237400 | 13 hrs ago | IN | 0.00004 ETH | 0.00000369 | ||||
| Deploy | 28235979 | 14 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28235176 | 15 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28233046 | 16 hrs ago | IN | 0.00004 ETH | 0.0000034 | ||||
| Deploy | 28228561 | 19 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28227172 | 20 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28225462 | 21 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28223990 | 22 hrs ago | IN | 0.00004 ETH | 0.00000369 | ||||
| Deploy | 28212580 | 29 hrs ago | IN | 0.00004 ETH | 0.00000323 | ||||
| Deploy | 28210488 | 30 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28207888 | 32 hrs ago | IN | 0.00004 ETH | 0.00000369 | ||||
| Deploy | 28204204 | 34 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28188572 | 42 hrs ago | IN | 0.00004 ETH | 0.00000338 | ||||
| Deploy | 28188559 | 42 hrs ago | IN | 0.00004 ETH | 0.00000338 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 28256737 | 1 hr ago | 0.00004 ETH | ||||
| 28256737 | 1 hr ago | Contract Creation | 0 ETH | |||
| 28256041 | 1 hr ago | 0.00004 ETH | ||||
| 28256041 | 1 hr ago | Contract Creation | 0 ETH | |||
| 28255155 | 2 hrs ago | 0.00004 ETH | ||||
| 28255155 | 2 hrs ago | Contract Creation | 0 ETH | |||
| 28252852 | 3 hrs ago | 0.00004 ETH | ||||
| 28252852 | 3 hrs ago | Contract Creation | 0 ETH | |||
| 28252336 | 4 hrs ago | 0.00004 ETH | ||||
| 28252336 | 4 hrs ago | Contract Creation | 0 ETH | |||
| 28251282 | 4 hrs ago | 0.00004 ETH | ||||
| 28251282 | 4 hrs ago | Contract Creation | 0 ETH | |||
| 28250225 | 5 hrs ago | 0.00004 ETH | ||||
| 28250225 | 5 hrs ago | Contract Creation | 0 ETH | |||
| 28244280 | 9 hrs ago | 0.00004 ETH | ||||
| 28244280 | 9 hrs ago | Contract Creation | 0 ETH | |||
| 28240737 | 11 hrs ago | 0.00004 ETH | ||||
| 28240737 | 11 hrs ago | Contract Creation | 0 ETH | |||
| 28240089 | 12 hrs ago | 0.00004 ETH | ||||
| 28240089 | 12 hrs ago | Contract Creation | 0 ETH | |||
| 28238520 | 13 hrs ago | 0.00004 ETH | ||||
| 28238520 | 13 hrs ago | Contract Creation | 0 ETH | |||
| 28237400 | 13 hrs ago | 0.00004 ETH | ||||
| 28237400 | 13 hrs ago | Contract Creation | 0 ETH | |||
| 28235979 | 14 hrs ago | 0.00004 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SurfDeployer
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import "@openzeppelin/contracts/access/Ownable.sol";
contract SurfContract {}
contract SurfDeployer is Ownable {
address internal feeRecipient;
uint256 public gasFee;
event Deployed(address indexed sender, address indexed contractAddress);
error TransferFailed();
error Unauthorized();
constructor(uint256 _gasFee, address _feeRecipient) {
feeRecipient = _feeRecipient;
gasFee = _gasFee;
}
function deploy() external payable {
if (msg.value != gasFee) {
revert Unauthorized();
}
SurfContract contractAddress = new SurfContract();
(bool success, ) = feeRecipient.call{value: msg.value}("");
if (!success) {
revert TransferFailed();
}
emit Deployed(address(msg.sender), address(contractAddress));
}
function updateConfig(
uint256 _gasFee,
address _feeRecipient
) external onlyOwner {
feeRecipient = _feeRecipient;
gasFee = _gasFee;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../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.
*
* By default, the owner account will be the one that deploys the contract. 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(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 {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/*
* @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;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_gasFee","type":"uint256"},{"internalType":"address","name":"_feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"deploy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"gasFee","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gasFee","type":"uint256"},{"internalType":"address","name":"_feeRecipient","type":"address"}],"name":"updateConfig","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b506040516105bb3803806105bb83398101604081905261002f916100b0565b61003833610060565b600180546001600160a01b0319166001600160a01b03929092169190911790556002556100ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156100c357600080fd5b825160208401519092506001600160a01b03811681146100e257600080fd5b809150509250929050565b6104bf806100fc6000396000f3fe6080604052600436106100555760003560e01c806307a582d81461005a578063658612e91461007c578063715018a6146100a5578063775c300c146100ba5780638da5cb5b146100c2578063f2fde38b146100ea575b600080fd5b34801561006657600080fd5b5061007a6100753660046103aa565b61010a565b005b34801561008857600080fd5b5061009260025481565b6040519081526020015b60405180910390f35b3480156100b157600080fd5b5061007a610162565b61007a610198565b3480156100ce57600080fd5b506000546040516001600160a01b03909116815260200161009c565b3480156100f657600080fd5b5061007a6101053660046103d6565b610297565b6000546001600160a01b0316331461013d5760405162461bcd60e51b8152600401610134906103f8565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055600255565b6000546001600160a01b0316331461018c5760405162461bcd60e51b8152600401610134906103f8565b6101966000610332565b565b60025434146101b9576040516282b42960e81b815260040160405180910390fd5b60006040516101c790610382565b604051809103906000f0801580156101e3573d6000803e3d6000fd5b506001546040519192506000916001600160a01b039091169034908381818185875af1925050503d8060008114610236576040519150601f19603f3d011682016040523d82523d6000602084013e61023b565b606091505b505090508061025d576040516312171d8360e31b815260040160405180910390fd5b6040516001600160a01b0383169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35050565b6000546001600160a01b031633146102c15760405162461bcd60e51b8152600401610134906103f8565b6001600160a01b0381166103265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610134565b61032f81610332565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605c8061042e83390190565b80356001600160a01b03811681146103a557600080fd5b919050565b600080604083850312156103bd57600080fd5b823591506103cd6020840161038e565b90509250929050565b6000602082840312156103e857600080fd5b6103f18261038e565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212205f732b34a83d48984f284b7eecc6953adfd61663482d21eef03811bc5985974d64736f6c634300080d0033a26469706673582212204ae12435cb984f12536e601176a711ae0b7ff1a56907a128ccb5beefa983492c64736f6c634300080d003300000000000000000000000000000000000000000000000000001fd512913000000000000000000000000000538f85f181fbae0d1cd2f190ec903eb21e434bd8
Deployed Bytecode
0x6080604052600436106100555760003560e01c806307a582d81461005a578063658612e91461007c578063715018a6146100a5578063775c300c146100ba5780638da5cb5b146100c2578063f2fde38b146100ea575b600080fd5b34801561006657600080fd5b5061007a6100753660046103aa565b61010a565b005b34801561008857600080fd5b5061009260025481565b6040519081526020015b60405180910390f35b3480156100b157600080fd5b5061007a610162565b61007a610198565b3480156100ce57600080fd5b506000546040516001600160a01b03909116815260200161009c565b3480156100f657600080fd5b5061007a6101053660046103d6565b610297565b6000546001600160a01b0316331461013d5760405162461bcd60e51b8152600401610134906103f8565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055600255565b6000546001600160a01b0316331461018c5760405162461bcd60e51b8152600401610134906103f8565b6101966000610332565b565b60025434146101b9576040516282b42960e81b815260040160405180910390fd5b60006040516101c790610382565b604051809103906000f0801580156101e3573d6000803e3d6000fd5b506001546040519192506000916001600160a01b039091169034908381818185875af1925050503d8060008114610236576040519150601f19603f3d011682016040523d82523d6000602084013e61023b565b606091505b505090508061025d576040516312171d8360e31b815260040160405180910390fd5b6040516001600160a01b0383169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35050565b6000546001600160a01b031633146102c15760405162461bcd60e51b8152600401610134906103f8565b6001600160a01b0381166103265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610134565b61032f81610332565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605c8061042e83390190565b80356001600160a01b03811681146103a557600080fd5b919050565b600080604083850312156103bd57600080fd5b823591506103cd6020840161038e565b90509250929050565b6000602082840312156103e857600080fd5b6103f18261038e565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212205f732b34a83d48984f284b7eecc6953adfd61663482d21eef03811bc5985974d64736f6c634300080d0033a26469706673582212204ae12435cb984f12536e601176a711ae0b7ff1a56907a128ccb5beefa983492c64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000001fd512913000000000000000000000000000538f85f181fbae0d1cd2f190ec903eb21e434bd8
-----Decoded View---------------
Arg [0] : _gasFee (uint256): 35000000000000
Arg [1] : _feeRecipient (address): 0x538f85f181FbAE0d1cd2f190ec903EB21E434BD8
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000001fd512913000
Arg [1] : 000000000000000000000000538f85f181fbae0d1cd2f190ec903eb21e434bd8
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.