ETH Price: $1,583.46 (-0.33%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
Age
From
To

There are no matching entries

3 Internal Transactions found.

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
Age
From
To
Dispatch198602892024-05-13 9:46:23338 days ago1715593583
0xFffC644b...5D8C592a7
32.01610911 ETH
Dispatch197624662024-04-29 17:30:47352 days ago1714411847
0xFffC644b...5D8C592a7
0.53898232 ETH
0x3d602d80197624662024-04-29 17:30:47352 days ago1714411847
 Contract Creation
0 ETH
Loading...
Loading

Minimal Proxy Contract for 0x933fbfeb4ed1f111d12a39c2ab48657e6fc875c6

Contract Name:
FeeRecipient

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, BSL 1.1 license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : FeeRecipient.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./interfaces/IFeeDispatcher.sol";
contract FeeRecipient {
/// @notice Constructor replay prevention
bool internal initialized;
/// @notice Address where funds are sent to be dispatched
IFeeDispatcher internal dispatcher;
/// @notice Public Key root assigned to this receiver
bytes32 internal publicKeyRoot;
error AlreadyInitialized();
/// @notice Initializes the receiver
/// @param _dispatcher Address that will handle the fee dispatching
/// @param _publicKeyRoot Public Key root assigned to this receiver
function init(address _dispatcher, bytes32 _publicKeyRoot) external {
if (initialized) {
revert AlreadyInitialized();
}
initialized = true;
dispatcher = IFeeDispatcher(_dispatcher);
publicKeyRoot = _publicKeyRoot;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 6 : ConsensusLayerFeeDispatcher.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./libs/DispatchersStorageLib.sol";
import "./interfaces/IStakingContractFeeDetails.sol";
import "./interfaces/IFeeDispatcher.sol";
/// @title Consensus Layer Fee Recipient
/// @author Kiln
/// @notice This contract can be used to receive fees from a validator and split them with a node operator
contract ConsensusLayerFeeDispatcher is IFeeDispatcher {
using DispatchersStorageLib for bytes32;
event Withdrawal(
address indexed withdrawer,
address indexed feeRecipient,
bytes32 pubKeyRoot,
uint256 rewards,
uint256 nodeOperatorFee,
uint256 treasuryFee
);
error TreasuryReceiveError(bytes errorData);
error FeeRecipientReceiveError(bytes errorData);
error WithdrawerReceiveError(bytes errorData);
error ZeroBalanceWithdrawal();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 6 : DispatchersStorageLib.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
library DispatchersStorageLib {
function getUint256(bytes32 position) internal view returns (uint256 data) {
assembly {
data := sload(position)
}
}
function setUint256(bytes32 position, uint256 data) internal {
assembly {
sstore(position, data)
}
}
function getAddress(bytes32 position) internal view returns (address data) {
assembly {
data := sload(position)
}
}
function setAddress(bytes32 position, address data) internal {
assembly {
sstore(position, data)
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 6 : IStakingContractFeeDetails.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
interface IStakingContractFeeDetails {
function getWithdrawerFromPublicKeyRoot(bytes32 _publicKeyRoot) external view returns (address);
function getTreasury() external view returns (address);
function getOperatorFeeRecipient(bytes32 pubKeyRoot) external view returns (address);
function getGlobalFee() external view returns (uint256);
function getOperatorFee() external view returns (uint256);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 6 : IFeeDispatcher.sol
1
2
3
4
5
6
7
8
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;
interface IFeeDispatcher {
function dispatch(bytes32 _publicKeyRoot) external payable;
function getWithdrawer(bytes32 _publicKeyRoot) external view returns (address);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 6 : ExecutionLayerFeeDispatcher.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.10;
import "./libs/DispatchersStorageLib.sol";
import "./interfaces/IStakingContractFeeDetails.sol";
import "./interfaces/IFeeDispatcher.sol";
/// @title Execution Layer Fee Recipient
/// @author Kiln
/// @notice This contract can be used to receive fees from a validator and split them with a node operator
contract ExecutionLayerFeeDispatcher is IFeeDispatcher {
using DispatchersStorageLib for bytes32;
event Withdrawal(
address indexed withdrawer,
address indexed feeRecipient,
bytes32 pubKeyRoot,
uint256 rewards,
uint256 nodeOperatorFee,
uint256 treasuryFee
);
error TreasuryReceiveError(bytes errorData);
error FeeRecipientReceiveError(bytes errorData);
error WithdrawerReceiveError(bytes errorData);
error ZeroBalanceWithdrawal();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

API
[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getPublicKeyRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWithdrawer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dispatcher","type":"address"},{"internalType":"bytes32","name":"_publicKeyRoot","type":"bytes32"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Age Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Age Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Latest 25 from a total of 31 withdrawals (32.555091441 ETH withdrawn)

Validator Index Block Age Amount
888107198331402024-05-09 14:39:11342 days ago171526555132 ETH
888107197709122024-04-30 21:49:23351 days ago17145137630.016109112 ETH
888107197093452024-04-22 7:08:11359 days ago17137696910.018261261 ETH
888107196481522024-04-13 17:31:23368 days ago17130294830.018299747 ETH
888107195872032024-04-05 4:36:23376 days ago17122917830.018212604 ETH
888107195260562024-03-27 13:50:23385 days ago17115474230.018215273 ETH
888107194650842024-03-18 23:57:47393 days ago17108062670.018256868 ETH
888107194040782024-03-10 10:24:35402 days ago17100662750.018333103 ETH
888107193434372024-03-01 22:52:59411 days ago17093335790.018158922 ETH
888107192837682024-02-22 14:33:35419 days ago17086124150.017877186 ETH
888107192252932024-02-14 9:23:35427 days ago17079026150.017731455 ETH
888107191679052024-02-06 8:06:11435 days ago17072067710.017556811 ETH
888107191115432024-01-29 10:19:11443 days ago17065235510.017411937 ETH
888107190558632024-01-21 14:34:11451 days ago17058476510.017403292 ETH
888107190005672024-01-13 21:11:11459 days ago17051802710.059764068 ETH
888107189448052024-01-06 1:05:59466 days ago17045031590.017420273 ETH
888107188895592023-12-29 6:48:47474 days ago17038325270.017366662 ETH
888107188345002023-12-21 13:20:23482 days ago17031648230.01736657 ETH
888107187796382023-12-13 20:31:11490 days ago17024994710.017304972 ETH
888107187249442023-12-06 4:36:23497 days ago17018373830.017213064 ETH
888107186707022023-11-28 14:24:59505 days ago17011814990.017193865 ETH
888107186167212023-11-21 0:59:23512 days ago17005283630.017222349 ETH
888107185626502023-11-13 11:21:35520 days ago16998744950.01703689 ETH
888107185092582023-11-06 0:05:11527 days ago16992291110.016906874 ETH
888107184565322023-10-29 14:47:47535 days ago16985908670.016931349 ETH
View All Withdrawals

Transaction Hash Block Age Value Eth2 PubKey Valid
View All Deposits
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.