Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 38 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Create | 12245812 | 419 days ago | IN | 0 ETH | 0.00000142 | ||||
| Create | 10951286 | 449 days ago | IN | 0 ETH | 0.00000055 | ||||
| Create | 10951283 | 449 days ago | IN | 0 ETH | 0.00000064 | ||||
| Create | 10951279 | 449 days ago | IN | 0 ETH | 0.00000053 | ||||
| Create | 10951277 | 449 days ago | IN | 0 ETH | 0.00000053 | ||||
| Create | 10641926 | 457 days ago | IN | 0 ETH | 0.0000006 | ||||
| Create | 10074920 | 470 days ago | IN | 0 ETH | 0.00000127 | ||||
| Create | 9874712 | 474 days ago | IN | 0 ETH | 0.00000035 | ||||
| Create | 9831093 | 475 days ago | IN | 0 ETH | 0.00000036 | ||||
| Create | 9562361 | 482 days ago | IN | 0 ETH | 0.00000073 | ||||
| Create | 9562357 | 482 days ago | IN | 0 ETH | 0.00000073 | ||||
| Create | 9562352 | 482 days ago | IN | 0 ETH | 0.00000073 | ||||
| Create | 9562347 | 482 days ago | IN | 0 ETH | 0.00000071 | ||||
| Create | 9562343 | 482 days ago | IN | 0 ETH | 0.00000071 | ||||
| Create | 9562339 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562335 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562331 | 482 days ago | IN | 0 ETH | 0.00000073 | ||||
| Create | 9562328 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562324 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562320 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562315 | 482 days ago | IN | 0 ETH | 0.00000071 | ||||
| Create | 9562311 | 482 days ago | IN | 0 ETH | 0.00000071 | ||||
| Create | 9562307 | 482 days ago | IN | 0 ETH | 0.00000072 | ||||
| Create | 9562303 | 482 days ago | IN | 0 ETH | 0.00000071 | ||||
| Create | 9562299 | 482 days ago | IN | 0 ETH | 0.00000072 |
Latest 25 internal transactions (View All)
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
import { BaseGaugeFactory } from "./BaseGaugeFactory.sol";
interface IMerklGauge {
function initialize(
uint256,
address,
address
) external;
}
contract MerklGaugeFactory is BaseGaugeFactory {
constructor(address gauge) BaseGaugeFactory(address(gauge)) {
// solhint-disable-previous-line no-empty-blocks
}
/**
* @notice Deploys a new merkl gauge.
* @param relativeWeightCap The relative weight cap for the created gauge.
* @param merklDistributionCreator The merkl distribution creator.
* @param pool The uniV3Pool.
* @return The address of the deployed gauge
*/
function create(
uint256 relativeWeightCap,
address merklDistributionCreator,
address pool
) external returns (address) {
address gauge = _create();
IMerklGauge(gauge).initialize(relativeWeightCap, merklDistributionCreator, pool);
return gauge;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Clones.sol)
pragma solidity ^0.8.20;
/**
* @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
* deploying minimal proxy contracts, also known as "clones".
*
* > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
* > a minimal bytecode implementation that delegates all calls to a known, fixed address.
*
* The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
* (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
* deterministic method.
*/
library Clones {
/**
* @dev A clone instance deployment failed.
*/
error ERC1167FailedCreateClone();
/**
* @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
*
* This function uses the create opcode, which should never revert.
*/
function clone(address implementation) internal returns (address instance) {
/// @solidity memory-safe-assembly
assembly {
// Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
// of the `implementation` address with the bytecode before the address.
mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
// Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
instance := create(0, 0x09, 0x37)
}
if (instance == address(0)) {
revert ERC1167FailedCreateClone();
}
}
/**
* @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
*
* This function uses the create2 opcode and a `salt` to deterministically deploy
* the clone. Using the same `implementation` and `salt` multiple time will revert, since
* the clones cannot be deployed twice at the same address.
*/
function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
/// @solidity memory-safe-assembly
assembly {
// Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
// of the `implementation` address with the bytecode before the address.
mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
// Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
instance := create2(0, 0x09, 0x37, salt)
}
if (instance == address(0)) {
revert ERC1167FailedCreateClone();
}
}
/**
* @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
*/
function predictDeterministicAddress(
address implementation,
bytes32 salt,
address deployer
) internal pure returns (address predicted) {
/// @solidity memory-safe-assembly
assembly {
let ptr := mload(0x40)
mstore(add(ptr, 0x38), deployer)
mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)
mstore(add(ptr, 0x14), implementation)
mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)
mstore(add(ptr, 0x58), salt)
mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))
predicted := keccak256(add(ptr, 0x43), 0x55)
}
}
/**
* @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
*/
function predictDeterministicAddress(
address implementation,
bytes32 salt
) internal view returns (address predicted) {
return predictDeterministicAddress(implementation, salt, address(this));
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
import { Clones } from "@openzeppelin/contracts/proxy/Clones.sol";
abstract contract BaseGaugeFactory {
address private _gaugeImplementation;
mapping(address => bool) private _isGaugeFromFactory;
event GaugeCreated(address indexed gauge);
constructor(address gaugeImplementation) {
_gaugeImplementation = gaugeImplementation;
}
/**
* @notice Returns the address of the implementation used for gauge deployments.
*/
function getGaugeImplementation() public view returns (address) {
return _gaugeImplementation;
}
/**
* @notice Returns true if `gauge` was created by this factory.
*/
function isGaugeFromFactory(address gauge) external view returns (bool) {
return _isGaugeFromFactory[gauge];
}
/**
* @dev Deploys a new gauge as a proxy of the implementation in storage.
* The deployed gauge must be initialized by the caller method.
* @return The address of the deployed gauge
*/
function _create() internal returns (address) {
address gauge = Clones.clone(_gaugeImplementation);
_isGaugeFromFactory[gauge] = true;
emit GaugeCreated(gauge);
return gauge;
}
}{
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"gauge","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ERC1167FailedCreateClone","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"GaugeCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"relativeWeightCap","type":"uint256"},{"internalType":"address","name":"merklDistributionCreator","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"name":"create","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getGaugeImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"gauge","type":"address"}],"name":"isGaugeFromFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50604051610658380380610658833981810160405281019061003291906100dd565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061010a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100aa8261007f565b9050919050565b6100ba8161009f565b81146100c557600080fd5b50565b6000815190506100d7816100b1565b92915050565b6000602082840312156100f3576100f261007a565b5b6000610101848285016100c8565b91505092915050565b61053f806101196000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806339312dee14610046578063ce3cc8bd14610064578063d4ad267314610094575b600080fd5b61004e6100c4565b60405161005b919061038b565b60405180910390f35b61007e600480360381019061007991906103d7565b6100ed565b60405161008b919061041f565b60405180910390f35b6100ae60048036038101906100a99190610470565b610143565b6040516100bb919061038b565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061014e6101ca565b90508073ffffffffffffffffffffffffffffffffffffffff1663b4988fd08686866040518463ffffffff1660e01b815260040161018d939291906104d2565b600060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b50505050809150509392505050565b6000806101f660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610299565b905060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faa98436d09d130af48de49867af8b723bbbebb0d737638b5fe8f1bf31bbb71c060405160405180910390a28091505090565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610345576040517fc2f868f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103758261034a565b9050919050565b6103858161036a565b82525050565b60006020820190506103a0600083018461037c565b92915050565b600080fd5b6103b48161036a565b81146103bf57600080fd5b50565b6000813590506103d1816103ab565b92915050565b6000602082840312156103ed576103ec6103a6565b5b60006103fb848285016103c2565b91505092915050565b60008115159050919050565b61041981610404565b82525050565b60006020820190506104346000830184610410565b92915050565b6000819050919050565b61044d8161043a565b811461045857600080fd5b50565b60008135905061046a81610444565b92915050565b600080600060608486031215610489576104886103a6565b5b60006104978682870161045b565b93505060206104a8868287016103c2565b92505060406104b9868287016103c2565b9150509250925092565b6104cc8161043a565b82525050565b60006060820190506104e760008301866104c3565b6104f4602083018561037c565b610501604083018461037c565b94935050505056fea2646970667358221220634b0ebc8af20b9649037904ca15da9a6eda8b596035f79dc20790f3d2c2383a64736f6c634300081700330000000000000000000000009ef366fb5a1589a1f4f2346cf630424985a54981
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c806339312dee14610046578063ce3cc8bd14610064578063d4ad267314610094575b600080fd5b61004e6100c4565b60405161005b919061038b565b60405180910390f35b61007e600480360381019061007991906103d7565b6100ed565b60405161008b919061041f565b60405180910390f35b6100ae60048036038101906100a99190610470565b610143565b6040516100bb919061038b565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061014e6101ca565b90508073ffffffffffffffffffffffffffffffffffffffff1663b4988fd08686866040518463ffffffff1660e01b815260040161018d939291906104d2565b600060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b50505050809150509392505050565b6000806101f660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610299565b905060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faa98436d09d130af48de49867af8b723bbbebb0d737638b5fe8f1bf31bbb71c060405160405180910390a28091505090565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610345576040517fc2f868f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103758261034a565b9050919050565b6103858161036a565b82525050565b60006020820190506103a0600083018461037c565b92915050565b600080fd5b6103b48161036a565b81146103bf57600080fd5b50565b6000813590506103d1816103ab565b92915050565b6000602082840312156103ed576103ec6103a6565b5b60006103fb848285016103c2565b91505092915050565b60008115159050919050565b61041981610404565b82525050565b60006020820190506104346000830184610410565b92915050565b6000819050919050565b61044d8161043a565b811461045857600080fd5b50565b60008135905061046a81610444565b92915050565b600080600060608486031215610489576104886103a6565b5b60006104978682870161045b565b93505060206104a8868287016103c2565b92505060406104b9868287016103c2565b9150509250925092565b6104cc8161043a565b82525050565b60006060820190506104e760008301866104c3565b6104f4602083018561037c565b610501604083018461037c565b94935050505056fea2646970667358221220634b0ebc8af20b9649037904ca15da9a6eda8b596035f79dc20790f3d2c2383a64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009ef366fb5a1589a1f4f2346cf630424985a54981
-----Decoded View---------------
Arg [0] : gauge (address): 0x9Ef366fb5a1589a1F4f2346Cf630424985A54981
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009ef366fb5a1589a1f4f2346cf630424985a54981
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.