Address Contract Partially Verified
Address
0x3070Eb0eac184CB84E825DfFF97070521424AccD
Balance
0 ETH
Nonce
1
Code Size
5552 bytes
Creator
0xE23B51AC...713C at tx 0xa31912cb...f7afef
Indexed Transactions
0
Contract Bytecode
5552 bytes
0x60806040526004361061007b5760003560e01c80638456cb591161004e5780638456cb591461012e5780638da5cb5b14610145578063c82655b71461019c578063f2fde38b146103145761007b565b80633f4ba83a1461008057806351cff8d9146100975780635c975abb146100e8578063715018a614610117575b600080fd5b34801561008c57600080fd5b50610095610365565b005b3480156100a357600080fd5b506100e6600480360360208110156100ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610439565b005b3480156100f457600080fd5b506100fd610627565b604051808215151515815260200191505060405180910390f35b34801561012357600080fd5b5061012c61063d565b005b34801561013a57600080fd5b50610143610758565b005b34801561015157600080fd5b5061015a61082c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610312600480360360808110156101b257600080fd5b81019080803590602001906401000000008111156101cf57600080fd5b8201836020820111156101e157600080fd5b8035906020019184600183028401116401000000008311171561020357600080fd5b90919293919293908035906020019064010000000081111561022457600080fd5b82018360208201111561023657600080fd5b8035906020019184600183028401116401000000008311171561025857600080fd5b90919293919293908035906020019064010000000081111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460018302840111640100000000831117156102ad57600080fd5b9091929391929390803590602001906401000000008111156102ce57600080fd5b8201836020820111156102e057600080fd5b8035906020019184602083028401116401000000008311171561030257600080fd5b9091929391929390505050610855565b005b34801561032057600080fd5b506103636004803603602081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eae565b005b61036d6110be565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461042f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6104376110c6565b565b6104416110be565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806114166021913960400191505060405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610622573d6000803e3d6000fd5b505050565b60008060009054906101000a900460ff16905090565b6106456110be565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114676026913960400191505060405180910390fd5b6107606110be565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610822576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61082a6111cd565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900460ff16156108d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6000633b9aca0034816108e657fe5b061461093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114376030913960400191505060405180910390fd5b6801bc16d674ec8000003410156109bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f42617463684465706f7369743a20416d6f756e7420697320746f6f206c6f770081525060200191505060405180910390fd5b600082829050905060008111610a1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806115446037913960400191505060405180910390fd5b6064811115610a77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806114e4603a913960400191505060405180910390fd5b603081028989905014610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061151e6026913960400191505060405180910390fd5b606081028585905014610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806113ec602a913960400191505060405180910390fd5b60206001028787905014610b92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061148d6036913960400191505060405180910390fd5b6000610bb0826801bc16d674ec8000006112d590919063ffffffff16565b905080341015610c0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806113b56037913960400191505060405180910390fd5b60008090505b82811015610ea15760608b8b60308402906030600186010292610c369392919061135b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506060888860608502906060600187010292610c989392919061135b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663228951186801bc16d674ec800000848e8e868d8d8b818110610d3557fe5b905060200201356040518763ffffffff1660e01b815260040180806020018060200180602001858152602001848103845289818151815260200191508051906020019080838360005b83811015610d99578082015181840152602081019050610d7e565b50505050905090810190601f168015610dc65780820380516001836020036101000a031916815260200191505b508481038352888882818152602001925080828437600081840152601f19601f820116905080830192505050848103825286818151815260200191508051906020019080838360005b83811015610e2a578082015181840152602081019050610e0f565b50505050905090810190601f168015610e575780820380516001836020036101000a031916815260200191505b50985050505050505050506000604051808303818588803b158015610e7b57600080fd5b505af1158015610e8f573d6000803e3d6000fd5b50505050505050806001019050610c11565b5050505050505050505050565b610eb66110be565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ffe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061138f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6000809054906101000a900460ff16611147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61118a6110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000809054906101000a900460ff161561124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112926110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000808314156112e85760009050611355565b60008284029050828482816112f957fe5b0414611350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806114c36021913960400191505060405180910390fd5b809150505b92915050565b6000808585111561136b57600080fd5b8386111561137857600080fd5b600185028301915084860390509450949250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342617463684465706f7369743a20416d6f756e74206973206e6f7420616c69676e65642077697468207075626b657973206e756d62657242617463684465706f7369743a205369676e61747572657320636f756e7420646f6e2774206d61746368596f752063616e2774206275726e20746865736520657468206469726563746c7942617463684465706f7369743a204465706f7369742076616c7565206e6f74206d756c7469706c65206f6620475745494f776e61626c653a2072656e6f756e63654f776e6572736869702069732064697361626c656442617463684465706f7369743a205769746864726177616c2043726564656e7469616c7320636f756e7420646f6e2774206d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7742617463684465706f7369743a20596f752063616e206465706f736974206d6178203130302076616c696461746f727320617420612074696d6542617463684465706f7369743a205075626b657920636f756e7420646f6e2774206d6174636842617463684465706f7369743a20596f752073686f756c64206465706f736974206174206c65617374206f6e652076616c696461746f72a2646970667358221220f3c18d1fc1b8f5de8386eb83f03570de0dc8f8f901356150ae167b824473edb064736f6c63430006080033
Verified Source Code Partial Match
Compiler: v0.6.8+commit.0bbfe453
EVM: istanbul
Optimization: No
BatchDeposit.sol 509 lines
/*
*Submitted for verification at Etherscan.io on 2020-11-18
*/
//
// This contract allows deposit of multiple validators in one transaction.
//
// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.6.8;
/*
* @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 GSN 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 payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() internal {
_paused = false;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view returns (bool) {
return _paused;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
require(!_paused, "Pausable: paused");
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
require(_paused, "Pausable: not paused");
_;
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
/**
* @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.
*/
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() internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view 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 {
emit OwnershipTransferred(_owner, address(0));
_owner = 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"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
// Deposit contract interface
interface IDepositContract {
/// @notice A processed deposit event.
event DepositEvent(
bytes pubkey,
bytes withdrawal_credentials,
bytes amount,
bytes signature,
bytes index
);
/// @notice Submit a Phase 0 DepositData object.
/// @param pubkey A BLS12-381 public key.
/// @param withdrawal_credentials Commitment to a public key for withdrawals.
/// @param signature A BLS12-381 signature.
/// @param deposit_data_root The SHA-256 hash of the SSZ-encoded DepositData object.
/// Used as a protection against malformed input.
function deposit(
bytes calldata pubkey,
bytes calldata withdrawal_credentials,
bytes calldata signature,
bytes32 deposit_data_root
) external payable;
/// @notice Query the current deposit root hash.
/// @return The deposit root hash.
function get_deposit_root() external view returns (bytes32);
/// @notice Query the current deposit count.
/// @return The deposit count encoded as a little endian 64-bit number.
function get_deposit_count() external view returns (bytes memory);
}
contract BatchDeposit is Pausable, Ownable {
using SafeMath for uint256;
address depositContract;
uint256 constant PUBKEY_LENGTH = 48;
uint256 constant SIGNATURE_LENGTH = 96;
uint256 constant CREDENTIALS_LENGTH = 32;
uint256 constant MAX_VALIDATORS = 100;
uint256 constant DEPOSIT_AMOUNT = 32 ether;
event Withdrawn(address indexed payee, uint256 weiAmount);
constructor(address depositContractAddr) public {
depositContract = depositContractAddr;
}
/**
* @dev Performs a batch deposit
*/
function batchDeposit(
bytes calldata pubkeys,
bytes calldata withdrawal_credentials,
bytes calldata signatures,
bytes32[] calldata deposit_data_roots
) external payable whenNotPaused {
// sanity checks
require(
msg.value % 1000000000 == 0,
"BatchDeposit: Deposit value not multiple of GWEI"
);
require(msg.value >= DEPOSIT_AMOUNT, "BatchDeposit: Amount is too low");
uint256 count = deposit_data_roots.length;
require(
count > 0,
"BatchDeposit: You should deposit at least one validator"
);
require(
count <= MAX_VALIDATORS,
"BatchDeposit: You can deposit max 100 validators at a time"
);
require(
pubkeys.length == count * PUBKEY_LENGTH,
"BatchDeposit: Pubkey count don't match"
);
require(
signatures.length == count * SIGNATURE_LENGTH,
"BatchDeposit: Signatures count don't match"
);
require(
withdrawal_credentials.length == 1 * CREDENTIALS_LENGTH,
"BatchDeposit: Withdrawal Credentials count don't match"
);
uint256 expectedAmount = DEPOSIT_AMOUNT.mul(count);
require(
msg.value >= expectedAmount,
"BatchDeposit: Amount is not aligned with pubkeys number"
);
for (uint256 i = 0; i < count; ++i) {
bytes memory pubkey = bytes(
pubkeys[i * PUBKEY_LENGTH:(i + 1) * PUBKEY_LENGTH]
);
bytes memory signature = bytes(
signatures[i * SIGNATURE_LENGTH:(i + 1) * SIGNATURE_LENGTH]
);
IDepositContract(depositContract).deposit{value: DEPOSIT_AMOUNT}(
pubkey,
withdrawal_credentials,
signature,
deposit_data_roots[i]
);
}
}
/**
* @dev Withdraw accumulated fee in the contract
*
* @param receiver The address where all accumulated funds will be transferred to.
* Can only be called by the current owner.
*/
function withdraw(address payable receiver) public onlyOwner {
require(receiver != address(0), "You can't burn these eth directly");
uint256 amount = address(this).balance;
emit Withdrawn(receiver, amount);
receiver.transfer(amount);
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function pause() public onlyOwner {
_pause();
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function unpause() public onlyOwner {
_unpause();
}
/**
* Disable renunce ownership
*/
function renounceOwnership() public override onlyOwner {
revert("Ownable: renounceOwnership is disabled");
}
}
Read Contract
owner 0x8da5cb5b → address
paused 0x5c975abb → bool
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
batchDeposit 0xc82655b7
bytes pubkeys
bytes withdrawal_credentials
bytes signatures
bytes32[] deposit_data_roots
pause 0x8456cb59
No parameters
renounceOwnership 0x715018a6
No parameters
transferOwnership 0xf2fde38b
address newOwner
unpause 0x3f4ba83a
No parameters
withdraw 0x51cff8d9
address receiver
Recent Transactions
No transactions found for this address