Latest 25 from a total of 34,182 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Delta Compose | 81487870 | 214 days ago | IN | 0 MNT | 0.01985362 | ||||
| Delta Compose | 81293760 | 218 days ago | IN | 0 MNT | 0.14379107 | ||||
| Delta Compose | 81293722 | 218 days ago | IN | 0 MNT | 0.16093811 | ||||
| Delta Compose | 81293706 | 218 days ago | IN | 0 MNT | 0.15958399 | ||||
| Delta Compose | 81293679 | 218 days ago | IN | 0 MNT | 0.17024793 | ||||
| Delta Compose | 81293661 | 218 days ago | IN | 0 MNT | 0.17444188 | ||||
| Delta Compose | 81293645 | 218 days ago | IN | 0 MNT | 0.17945206 | ||||
| Delta Compose | 81293622 | 218 days ago | IN | 0 MNT | 0.16821483 | ||||
| Delta Compose | 80658862 | 233 days ago | IN | 0 MNT | 0.03006478 | ||||
| Delta Compose | 80631944 | 234 days ago | IN | 0 MNT | 0.04537171 | ||||
| Delta Compose | 80592433 | 234 days ago | IN | 0 MNT | 0.11213449 | ||||
| Delta Compose | 80592400 | 234 days ago | IN | 3.40211203 MNT | 0.06734559 | ||||
| Delta Compose | 80592357 | 234 days ago | IN | 0 MNT | 0.13875874 | ||||
| Delta Compose | 80592217 | 234 days ago | IN | 0 MNT | 0.1393972 | ||||
| Delta Compose | 80554494 | 235 days ago | IN | 0 MNT | 0.08466467 | ||||
| Delta Compose | 80554452 | 235 days ago | IN | 0 MNT | 0.03003556 | ||||
| Delta Compose | 80554255 | 235 days ago | IN | 0 MNT | 0.04235204 | ||||
| Delta Compose | 80554205 | 235 days ago | IN | 0 MNT | 0.08037091 | ||||
| Delta Compose | 80554067 | 235 days ago | IN | 0 MNT | 0.07929359 | ||||
| Delta Compose | 80554009 | 235 days ago | IN | 0 MNT | 0.03134385 | ||||
| Delta Compose | 80553921 | 235 days ago | IN | 0 MNT | 0.03741155 | ||||
| Delta Compose | 80553838 | 235 days ago | IN | 0 MNT | 0.04015408 | ||||
| Delta Compose | 80553769 | 235 days ago | IN | 0 MNT | 0.06741537 | ||||
| Delta Compose | 80495660 | 237 days ago | IN | 1 MNT | 0.09038149 | ||||
| Delta Compose | 80444653 | 238 days ago | IN | 1 MNT | 0.01010926 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 80592400 | 234 days ago | 3.40211203 MNT | ||||
| 80495660 | 237 days ago | 1 MNT | ||||
| 80444653 | 238 days ago | 1 MNT | ||||
| 80165445 | 244 days ago | 0.84897942 MNT | ||||
| 80165379 | 244 days ago | 140 MNT | ||||
| 78734611 | 277 days ago | 1.35785443 MNT | ||||
| 78719424 | 278 days ago | 1.40072166 MNT | ||||
| 78719424 | 278 days ago | 1.40072166 MNT | ||||
| 78719343 | 278 days ago | 1 MNT | ||||
| 78652181 | 279 days ago | 2.40268361 MNT | ||||
| 78652181 | 279 days ago | 2.40268361 MNT | ||||
| 78613487 | 280 days ago | 90 MNT | ||||
| 77965209 | 295 days ago | 1.0946634 MNT | ||||
| 77965209 | 295 days ago | 1.0946634 MNT | ||||
| 77786219 | 299 days ago | 5,412.82701114 MNT | ||||
| 77739959 | 300 days ago | 37,330.21806969 MNT | ||||
| 77739959 | 300 days ago | 37,330.21806969 MNT | ||||
| 77685028 | 302 days ago | 2.00614362 MNT | ||||
| 77685028 | 302 days ago | 2.00614362 MNT | ||||
| 77379841 | 309 days ago | 0.00000005 MNT | ||||
| 77379841 | 309 days ago | 0.00000005 MNT | ||||
| 77379841 | 309 days ago | 0.00001806 MNT | ||||
| 77379839 | 309 days ago | 0.00000005 MNT | ||||
| 77379839 | 309 days ago | 0.00000005 MNT | ||||
| 77379839 | 309 days ago | 0.00001806 MNT |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DeltaBrokerProxyGen2
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /******************************************************************************\ * Author: Achthar <[email protected]> /******************************************************************************/ import {LibModules} from "./libraries/LibModules.sol"; import {IModuleConfig} from "./interfaces/IModuleConfig.sol"; contract DeltaBrokerProxyGen2 { error NoImplementation(); // [LibModules.moduleStorage().selectorToModule].slot bytes32 private constant IMPLS_SLOT = 0x76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc402; constructor(address _contractOwner, address _moduleConfig) { LibModules.setContractOwner(_contractOwner); // Add the moduleConfig external function from the moduleConfigModule IModuleConfig.ModuleConfig[] memory cut = new IModuleConfig.ModuleConfig[](1); bytes4[] memory functionSelectors = new bytes4[](1); functionSelectors[0] = IModuleConfig.configureModules.selector; cut[0] = IModuleConfig.ModuleConfig({ moduleAddress: _moduleConfig, action: IModuleConfig.ModuleConfigAction.Add, functionSelectors: functionSelectors }); LibModules.configureModules(cut); } // Find module for function that is called and execute the // function if a module is found and return any value. fallback() external payable { assembly { let cdlen := calldatasize() // Store at 0x40, to leave 0x00-0x3F for slot calculation below. calldatacopy(0x40, 0x00, cdlen) let target := and(mload(0x40), 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000) // Slot for impls[target] is keccak256(target . IMPLS_SLOT). mstore(0x00, target) mstore(0x20, IMPLS_SLOT) let slot := keccak256(0x00, 0x40) target := sload(slot) // overwrite target to delegate address if iszero(target) { // Revert with: // abi.encodeWithSelector( // bytes4(keccak256("NoImplementation()"))) mstore(0x00, 0xc6745ca800000000000000000000000000000000000000000000000000000000) revert(0x00, 4) } let success := delegatecall(gas(), target, 0x40, cdlen, 0x00, 0x00) let rdlen := returndatasize() returndatacopy(0x00, 0x00, rdlen) if success { return(0x00, rdlen) } revert(0x00, rdlen) } } receive() external payable {} }
// SPDX-License-Identifier: MIT
/**
* Vendored on December 23, 2021 from:
* https://github.com/mudgen/diamond-3-hardhat/blob/7feb995/contracts/interfaces/IModuleConfig.sol
*/
pragma solidity ^0.8.0;
interface IModuleConfig {
enum ModuleConfigAction {
Add,
Replace,
Remove
}
// Add=0, Replace=1, Remove=2
struct ModuleConfig {
address moduleAddress;
ModuleConfigAction action;
bytes4[] functionSelectors;
}
/// @notice Add/replace/remove any number of functions and optionally execute
/// a function with delegatecall
/// @param _moduleConfig Contains the module addresses and function selectors
function configureModules(ModuleConfig[] calldata _moduleConfig) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/******************************************************************************\
* Author: Achthar - 1delta.io
* Modified diamond module handling library
/******************************************************************************/
import {IModuleConfig} from "../interfaces/IModuleConfig.sol";
// solhint-disable max-line-length
error InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata);
library LibModules {
bytes32 constant MODULE_STORAGE_POSITION = keccak256("diamond.standard.module.storage");
struct ModuleAddressAndPosition {
address moduleAddress;
uint96 functionSelectorPosition; // position in moduleFunctionSelectors.functionSelectors array
}
struct ModuleFunctionSelectors {
bytes4[] functionSelectors;
uint256 moduleAddressPosition; // position of moduleAddress in moduleAddresses array
}
struct ModuleStorage {
// maps function selector to the module address and
// the position of the selector in the moduleFunctionSelectors.selectors array
mapping(bytes4 => ModuleAddressAndPosition) selectorToModuleAndPosition;
// maps selector to module
mapping(bytes4 => address) selectorToModule;
// maps module addresses to function selectors
mapping(address => ModuleFunctionSelectors) moduleFunctionSelectors;
// module addresses
address[] moduleAddresses;
// Used to query if a contract implements an interface.
// Used to implement ERC-165.
mapping(bytes4 => bool) supportedInterfaces;
// Used to query if a module exits
mapping(address => bool) moduleExists;
// owner of the contract
address contractOwner;
}
function moduleStorage() internal pure returns (ModuleStorage storage ds) {
bytes32 position = MODULE_STORAGE_POSITION;
assembly {
ds.slot := position
}
}
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function setContractOwner(address _newOwner) internal {
ModuleStorage storage ds = moduleStorage();
address previousOwner = ds.contractOwner;
ds.contractOwner = _newOwner;
emit OwnershipTransferred(previousOwner, _newOwner);
}
function contractOwner() internal view returns (address contractOwner_) {
contractOwner_ = moduleStorage().contractOwner;
}
function enforceIsContractOwner() internal view {
require(msg.sender == moduleStorage().contractOwner, "LibModuleConfig: Must be contract owner");
}
event Upgrade(IModuleConfig.ModuleConfig[] _moduleChange);
// Internal function version of diamondCut
function configureModules(IModuleConfig.ModuleConfig[] memory _moduleChange) internal {
for (uint256 moduleIndex; moduleIndex < _moduleChange.length; moduleIndex++) {
IModuleConfig.ModuleConfigAction action = _moduleChange[moduleIndex].action;
if (action == IModuleConfig.ModuleConfigAction.Add) {
addFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
} else if (action == IModuleConfig.ModuleConfigAction.Replace) {
replaceFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
} else if (action == IModuleConfig.ModuleConfigAction.Remove) {
removeFunctions(_moduleChange[moduleIndex].moduleAddress, _moduleChange[moduleIndex].functionSelectors);
} else {
revert("LibModuleConfig: Incorrect ModuleConfigAction");
}
}
emit Upgrade(_moduleChange);
}
function addFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
ModuleStorage storage ds = moduleStorage();
require(_moduleAddress != address(0), "LibModuleConfig: Add module can't be address(0)");
uint96 selectorPosition = uint96(ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.length);
// add new module address if it does not exist
if (selectorPosition == 0) {
addModule(ds, _moduleAddress);
}
for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
bytes4 selector = _functionSelectors[selectorIndex];
address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
require(oldModuleAddress == address(0), "LibModuleConfig: Can't add function that already exists");
addFunction(ds, selector, selectorPosition, _moduleAddress);
selectorPosition++;
}
}
function replaceFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
ModuleStorage storage ds = moduleStorage();
require(_moduleAddress != address(0), "LibModuleConfig: Add module can't be address(0)");
uint96 selectorPosition = uint96(ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.length);
// add new module address if it does not exist
if (selectorPosition == 0) {
addModule(ds, _moduleAddress);
}
for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
bytes4 selector = _functionSelectors[selectorIndex];
address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
require(oldModuleAddress != _moduleAddress, "LibModuleConfig: Can't replace function with same function");
removeFunction(ds, oldModuleAddress, selector);
addFunction(ds, selector, selectorPosition, _moduleAddress);
selectorPosition++;
}
}
function removeFunctions(address _moduleAddress, bytes4[] memory _functionSelectors) internal {
require(_functionSelectors.length > 0, "LibModuleConfig: No selectors in module to cut");
ModuleStorage storage ds = moduleStorage();
// if function does not exist then do nothing and return
require(_moduleAddress == address(0), "LibModuleConfig: Remove module address must be address(0)");
for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {
bytes4 selector = _functionSelectors[selectorIndex];
address oldModuleAddress = ds.selectorToModuleAndPosition[selector].moduleAddress;
removeFunction(ds, oldModuleAddress, selector);
}
}
function addModule(ModuleStorage storage ds, address _moduleAddress) internal {
enforceHasContractCode(_moduleAddress, "LibModuleConfig: New module has no code");
ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition = ds.moduleAddresses.length;
ds.moduleAddresses.push(_moduleAddress);
ds.moduleExists[_moduleAddress] = true;
}
function addFunction(
ModuleStorage storage ds,
bytes4 _selector,
uint96 _selectorPosition,
address _moduleAddress
) internal {
ds.selectorToModuleAndPosition[_selector].functionSelectorPosition = _selectorPosition;
ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.push(_selector);
ds.selectorToModuleAndPosition[_selector].moduleAddress = _moduleAddress;
ds.selectorToModule[_selector] = _moduleAddress;
}
function removeFunction(
ModuleStorage storage ds,
address _moduleAddress,
bytes4 _selector
) internal {
require(_moduleAddress != address(0), "LibModuleConfig: Can't remove function that doesn't exist");
// an immutable function is a function defined directly in a diamond
require(_moduleAddress != address(this), "LibModuleConfig: Can't remove immutable function");
// replace selector with last selector, then delete last selector
uint256 selectorPosition = ds.selectorToModuleAndPosition[_selector].functionSelectorPosition;
uint256 lastSelectorPosition = ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.length - 1;
// if not the same then replace _selector with lastSelector
if (selectorPosition != lastSelectorPosition) {
bytes4 lastSelector = ds.moduleFunctionSelectors[_moduleAddress].functionSelectors[lastSelectorPosition];
ds.moduleFunctionSelectors[_moduleAddress].functionSelectors[selectorPosition] = lastSelector;
ds.selectorToModuleAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition);
}
// delete the last selector
ds.moduleFunctionSelectors[_moduleAddress].functionSelectors.pop();
delete ds.selectorToModuleAndPosition[_selector];
delete ds.selectorToModule[_selector];
// if no more selectors for module address then delete the module address
if (lastSelectorPosition == 0) {
// replace module address with last module address and delete last module address
uint256 lastModuleAddressPosition = ds.moduleAddresses.length - 1;
uint256 moduleAddressPosition = ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition;
if (moduleAddressPosition != lastModuleAddressPosition) {
address lastModuleAddress = ds.moduleAddresses[lastModuleAddressPosition];
ds.moduleAddresses[moduleAddressPosition] = lastModuleAddress;
ds.moduleFunctionSelectors[lastModuleAddress].moduleAddressPosition = moduleAddressPosition;
}
ds.moduleAddresses.pop();
delete ds.moduleFunctionSelectors[_moduleAddress].moduleAddressPosition;
ds.moduleExists[_moduleAddress] = false;
}
}
function initializeModuleConfig(address _init, bytes memory _calldata) internal {
if (_init == address(0)) {
return;
}
enforceHasContractCode(_init, "LibModuleConfig: _init address has no code");
(bool success, bytes memory error) = _init.delegatecall(_calldata);
if (!success) {
if (error.length > 0) {
// bubble up error
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(error)
revert(add(32, error), returndata_size)
}
} else {
revert InitializationFunctionReverted(_init, _calldata);
}
}
}
function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
uint256 contractSize;
assembly {
contractSize := extcodesize(_contract)
}
require(contractSize > 0, _errorMessage);
}
}{
"optimizer": {
"enabled": true,
"runs": 1000000
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_moduleConfig","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NoImplementation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"moduleAddress","type":"address"},{"internalType":"enum IModuleConfig.ModuleConfigAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IModuleConfig.ModuleConfig[]","name":"_moduleChange","type":"tuple[]"}],"name":"Upgrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5060405161126b38038061126b83398101604081905261002f91610ee5565b6100388261012b565b604080516001808252818301909252600091816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161004f57505060408051600180825281830190925291925060009190602080830190803683370190505090506369fc9a8060e01b816000815181106100be576100be610f18565b6001600160e01b031990921660209283029190910182015260408051606081019091526001600160a01b038516815290810160008152602001828152508260008151811061010e5761010e610f18565b6020908102919091010152610122826101ae565b505050506110ef565b7f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc40780546001600160a01b031981166001600160a01b03848116918217909355604051600080516020611204833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b81518110156103875760008282815181106101ce576101ce610f18565b6020026020010151602001519050600060028111156101ef576101ef610f2e565b81600281111561020157610201610f2e565b036102555761025083838151811061021b5761021b610f18565b60200260200101516000015184848151811061023957610239610f18565b6020026020010151604001516103c260201b60201c565b61037e565b600181600281111561026957610269610f2e565b036102b85761025083838151811061028357610283610f18565b6020026020010151600001518484815181106102a1576102a1610f18565b60200260200101516040015161064d60201b60201c565b60028160028111156102cc576102cc610f2e565b0361031b576102508383815181106102e6576102e6610f18565b60200260200101516000015184848151811061030457610304610f18565b6020026020010151604001516108e160201b60201c565b60405162461bcd60e51b815260206004820152602d60248201527f4c69624d6f64756c65436f6e6669673a20496e636f7272656374204d6f64756c60448201526c32a1b7b73334b3a0b1ba34b7b760991b60648201526084015b60405180910390fd5b506001016101b1565b507f5baa3478e7f762f071cc4e10c54ae2573362a38e93c8ba3f39d9acf6e49ca528816040516103b79190610f44565b60405180910390a150565b60008151116104185760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b0383166104835760405162461bcd60e51b815260206004820152602f60248201526000805160206111e483398151915260448201526e74206265206164647265737328302960881b6064820152608401610375565b6001600160a01b0383166000908152600282016020526040812054906001600160601b03821690036104b9576104b98285610a30565b60005b83518110156106465760008482815181106104d9576104d9610f18565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0316801561057f5760405162461bcd60e51b815260206004820152603760248201527f4c69624d6f64756c65436f6e6669673a2043616e2774206164642066756e637460448201527f696f6e207468617420616c7265616479206578697374730000000000000000006064820152608401610375565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c1680855260028b0184528285208054600181810183559187528587206008820401805463ffffffff60079093166004026101000a928302191660e08c901c9290920291909117905595855281546001600160a01b03199081168217909255948a01909252909120805490911690911790558361063581611046565b945050600190920191506104bc9050565b5050505050565b60008151116106a35760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b03831661070e5760405162461bcd60e51b815260206004820152602f60248201526000805160206111e483398151915260448201526e74206265206164647265737328302960881b6064820152608401610375565b6001600160a01b0383166000908152600282016020526040812054906001600160601b0382169003610744576107448285610a30565b60005b835181101561064657600084828151811061076457610764610f18565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b03908116908716810361080f5760405162461bcd60e51b815260206004820152603a60248201527f4c69624d6f64756c65436f6e6669673a2043616e2774207265706c616365206660448201527f756e6374696f6e20776974682073616d652066756e6374696f6e0000000000006064820152608401610375565b61081a858284610ab5565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558c1680855260028b0184528285208054600181810183559187528587206008820401805463ffffffff60079093166004026101000a928302191660e08c901c9290920291909117905595855281546001600160a01b03199081168217909255948a0190925290912080549091169091179055836108d081611046565b945050600190920191506107479050565b60008151116109375760405162461bcd60e51b815260206004820152602e602482015260008051602061122483398151915260448201526d081b5bd91d5b19481d1bc818dd5d60921b6064820152608401610375565b6000805160206112048339815191526001600160a01b038316156109c35760405162461bcd60e51b815260206004820152603960248201527f4c69624d6f64756c65436f6e6669673a2052656d6f7665206d6f64756c65206160448201527f646472657373206d7573742062652061646472657373283029000000000000006064820152608401610375565b60005b8251811015610a2a5760008382815181106109e3576109e3610f18565b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b0316610a20848284610ab5565b50506001016109c6565b50505050565b610a528160405180606001604052806027815260200161124460279139610ea8565b6003820180546001600160a01b03909216600081815260028501602090815260408083206001908101879055808701865594835281832090950180546001600160a01b03191684179055918152600590940190529120805460ff19169091179055565b6001600160a01b038216610b315760405162461bcd60e51b815260206004820152603960248201527f4c69624d6f64756c65436f6e6669673a2043616e27742072656d6f766520667560448201527f6e6374696f6e207468617420646f65736e2774206578697374000000000000006064820152608401610375565b306001600160a01b03831603610ba25760405162461bcd60e51b815260206004820152603060248201527f4c69624d6f64756c65436f6e6669673a2043616e27742072656d6f766520696d60448201526f36baba30b1363290333ab731ba34b7b760811b6064820152608401610375565b6001600160e01b03198116600090815260208481526040808320546001600160a01b038616845260028701909252822054600160a01b9091046001600160601b03169190610bf290600190611072565b9050808214610ce4576001600160a01b03841660009081526002860160205260408120805483908110610c2757610c27610f18565b600091825260208083206008830401546001600160a01b038916845260028a019091526040909220805460079092166004026101000a90920460e01b925082919085908110610c7857610c78610f18565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b03841660009081526002860160205260409020805480610d0d57610d0d61108b565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b031985168252868152604080832083905560018801909152812080546001600160a01b0319169055819003610646576003850154600090610d8890600190611072565b6001600160a01b0386166000908152600288016020526040902060010154909150808214610e38576000876003018381548110610dc757610dc7610f18565b6000918252602090912001546003890180546001600160a01b039092169250829184908110610df857610df8610f18565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260028901909152604090206001018190555b86600301805480610e4b57610e4b61108b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600289018152604080832060010183905560058a019091529020805460ff1916905550505050505050565b813b8181610a2a5760405162461bcd60e51b815260040161037591906110a1565b80516001600160a01b0381168114610ee057600080fd5b919050565b60008060408385031215610ef857600080fd5b610f0183610ec9565b9150610f0f60208401610ec9565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561102457868503603f19018452815180516001600160a01b031686526020810151606087019060038110610fb457634e487b7160e01b600052602160045260246000fd5b806020890152506040820151915060606040880152808251808352608089019150602084019350600092505b8083101561100c5783516001600160e01b03191682526020938401936001939093019290910190610fe0565b50965050506020938401939190910190600101610f6c565b50929695505050505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b0382166002600160601b0319810161106957611069611030565b60010192915050565b8181038181111561108557611085611030565b92915050565b634e487b7160e01b600052603160045260246000fd5b602081526000825180602084015260005b818110156110cf57602081860181015160408684010152016110b2565b506000604082850101526040601f19601f83011684010191505092915050565b60e7806110fd6000396000f3fe608060405236600a57005b36806000604037604080517fffffffff000000000000000000000000000000000000000000000000000000001660009081527f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4026020522054806090577fc6745ca80000000000000000000000000000000000000000000000000000000060005260046000fd5b600080836040845af49150503d806000803e811560ac57806000f35b806000fdfea2646970667358221220854113bb75cf2d75a6d11aab0743c68b349374acbc1c2086ad7bf66d530257c164736f6c634300081a00334c69624d6f64756c65436f6e6669673a20416464206d6f64756c652063616e2776a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4014c69624d6f64756c65436f6e6669673a204e6f2073656c6563746f727320696e4c69624d6f64756c65436f6e6669673a204e6577206d6f64756c6520686173206e6f20636f6465000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2
Deployed Bytecode
0x608060405236600a57005b36806000604037604080517fffffffff000000000000000000000000000000000000000000000000000000001660009081527f76a4e0db4b1954ed8d81a6d47b0f62dd8c71c2f4e57cbbe90dd863575a2bc4026020522054806090577fc6745ca80000000000000000000000000000000000000000000000000000000060005260046000fd5b600080836040845af49150503d806000803e811560ac57806000f35b806000fdfea2646970667358221220854113bb75cf2d75a6d11aab0743c68b349374acbc1c2086ad7bf66d530257c164736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2
-----Decoded View---------------
Arg [0] : _contractOwner (address): 0x999999833d965c275A2C102a4Ebf222ca938546f
Arg [1] : _moduleConfig (address): 0x23d135c9747C73F4217976e4AcE261Df7236bcA2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000999999833d965c275a2c102a4ebf222ca938546f
Arg [1] : 00000000000000000000000023d135c9747c73f4217976e4ace261df7236bca2
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in MNT
Token Allocations
MNT
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| MANTLE | 100.00% | $0.909686 | 0.0006343 | $0.000577 |
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.