Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21597490 | 4 days ago | 3 wei | |||||
21597490 | 4 days ago | 3 wei | |||||
21597490 | 4 days ago | 3 wei | |||||
21579217 | 6 days ago | 0 ETH | |||||
21554312 | 10 days ago | 1 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21544794 | 11 days ago | 9 wei | |||||
21532260 | 13 days ago | 4 wei | |||||
21532260 | 13 days ago | 4 wei | |||||
21532260 | 13 days ago | 4 wei | |||||
21532260 | 13 days ago | 4 wei | |||||
21532260 | 13 days ago | 4 wei | |||||
21530935 | 13 days ago | 0 ETH | |||||
21445642 | 25 days ago | 3 wei | |||||
21445642 | 25 days ago | 3 wei | |||||
21445642 | 25 days ago | 3 wei | |||||
21440318 | 26 days ago | 1 wei | |||||
21428259 | 27 days ago | 2 wei |
Loading...
Loading
Contract Name:
MerkleVerifier
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; /** * @title MerkleVerifier * @dev Utility functions for Merkle tree computations */ library MerkleVerifier { error InvalidProof(); /** * @dev Verify the merkle proof * @param leaf leaf * @param root root * @param proof proof */ function _verifyProof( bytes32 leaf, bytes32 root, bytes32[] memory proof ) public pure { bytes32 computedRoot = _computeRoot(leaf, proof); if (computedRoot != root) { revert InvalidProof(); } } /** * @dev Compute the merkle root * @param leaf leaf * @param proof proof */ function _computeRoot( bytes32 leaf, bytes32[] memory proof ) public pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; computedHash = _hashPair(computedHash, proofElement); } return computedHash; } function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) { return a < b ? _efficientHash(a, b) : _efficientHash(b, a); } function _efficientHash( bytes32 a, bytes32 b ) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
{ "metadata": { "bytecodeHash": "none" }, "optimizer": { "enabled": true, "runs": 800 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[{"internalType":"bytes32","name":"leaf","type":"bytes32"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"_computeRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"leaf","type":"bytes32"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"_verifyProof","outputs":[],"stateMutability":"pure","type":"function"}]
Contract Creation Code
6102cb61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806372aaadac146100455780639c7bf9381461005a575b600080fd5b6100586100533660046101ea565b61007f565b005b61006d61006836600461023a565b6100b3565b60405190815260200160405180910390f35b600061008b84836100b3565b90508281146100ad576040516309bde33960e01b815260040160405180910390fd5b50505050565b600082815b83518110156100ff5760008482815181106100d5576100d5610281565b602002602001015190506100e98382610107565b92505080806100f790610297565b9150506100b8565b509392505050565b6000818310610123576000828152602084905260409020610132565b60008381526020839052604090205b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261016057600080fd5b8135602067ffffffffffffffff8083111561017d5761017d610139565b8260051b604051601f19603f830116810181811084821117156101a2576101a2610139565b6040529384528581018301938381019250878511156101c057600080fd5b83870191505b848210156101df578135835291830191908301906101c6565b979650505050505050565b6000806000606084860312156101ff57600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561022457600080fd5b6102308682870161014f565b9150509250925092565b6000806040838503121561024d57600080fd5b82359150602083013567ffffffffffffffff81111561026b57600080fd5b6102778582860161014f565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016102b757634e487b7160e01b600052601160045260246000fd5b506001019056fea164736f6c6343000811000a
Deployed Bytecode
0x734c2bbdbeccae1c492c681158a46eae498a05627b30146080604052600436106100405760003560e01c806372aaadac146100455780639c7bf9381461005a575b600080fd5b6100586100533660046101ea565b61007f565b005b61006d61006836600461023a565b6100b3565b60405190815260200160405180910390f35b600061008b84836100b3565b90508281146100ad576040516309bde33960e01b815260040160405180910390fd5b50505050565b600082815b83518110156100ff5760008482815181106100d5576100d5610281565b602002602001015190506100e98382610107565b92505080806100f790610297565b9150506100b8565b509392505050565b6000818310610123576000828152602084905260409020610132565b60008381526020839052604090205b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261016057600080fd5b8135602067ffffffffffffffff8083111561017d5761017d610139565b8260051b604051601f19603f830116810181811084821117156101a2576101a2610139565b6040529384528581018301938381019250878511156101c057600080fd5b83870191505b848210156101df578135835291830191908301906101c6565b979650505050505050565b6000806000606084860312156101ff57600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561022457600080fd5b6102308682870161014f565b9150509250925092565b6000806040838503121561024d57600080fd5b82359150602083013567ffffffffffffffff81111561026b57600080fd5b6102778582860161014f565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b6000600182016102b757634e487b7160e01b600052601160045260246000fd5b506001019056fea164736f6c6343000811000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.