// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {IMendelSwapFactory} from "../interfaces/IMendelSwapFactory.sol";
import {MendelSwapPair} from "./MendelSwapPair.sol";
/// @title MendelSwapFactory
/// @notice Deploys one MendelSwapPair per token pair (deterministically, via CREATE2)
/// and holds the protocol-fee switch. Setting `feeTo` to the graduation
/// migrator turns on bloodline fee accrual (see MendelSwapPair._mintFee).
///
/// @dev Ported to solc 0.8.24 from Uniswap V2's UniswapV2Factory. Uses the typed
/// `new Pair{salt}()` form instead of inline-assembly create2.
contract MendelSwapFactory is IMendelSwapFactory {
/// @notice Hard ceiling on the max fee so governance can never set a punitive
/// swap fee: 1000 bps = 10%.
uint256 public constant MAX_FEE_CAP_BPS = 1000;
/// @notice Ceiling on the dynamic-fee slope (sanity bound).
uint256 public constant MAX_SLOPE_BPS = 1_000_000;
address public feeTo;
address public feeToSetter;
/// @notice The oracle powering dynamic fees; address(0) ⇒ all pairs static.
address public oracle;
/// @notice Fee floor charged to price-correcting trades (default 0.30%).
uint256 public baseFeeBps = 30;
/// @notice Fee cap for maximally-toxic trades (default 1.00% = Uniswap's top tier).
uint256 public maxFeeBps = 100;
/// @notice Dynamic-fee sensitivity: extra fee = addedDivergenceBps · slope / 10_000
/// (default 10_000 = 1:1, i.e. +1bp fee per +1bp of added divergence).
uint256 public slopeBps = 10_000;
mapping(address => mapping(address => address)) public getPair;
address[] public allPairs;
constructor(address _feeToSetter) {
require(_feeToSetter != address(0), "MendelSwap: ZERO_ADDRESS");
feeToSetter = _feeToSetter;
}
function feeConfig()
external
view
returns (address oracle_, uint256 baseFeeBps_, uint256 maxFeeBps_, uint256 slopeBps_)
{
return (oracle, baseFeeBps, maxFeeBps, slopeBps);
}
function allPairsLength() external view returns (uint256) {
return allPairs.length;
}
/// @notice The keccak256 of the pair creation code — the CREATE2 init-code-hash
/// off-chain integrators need to precompute pair addresses.
function pairCodeHash() external pure returns (bytes32) {
return keccak256(type(MendelSwapPair).creationCode);
}
function createPair(address tokenA, address tokenB) external returns (address pair) {
require(tokenA != tokenB, "MendelSwap: IDENTICAL_ADDRESSES");
(address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
require(token0 != address(0), "MendelSwap: ZERO_ADDRESS");
require(getPair[token0][token1] == address(0), "MendelSwap: PAIR_EXISTS"); // single check is sufficient
bytes32 salt = keccak256(abi.encodePacked(token0, token1));
pair = address(new MendelSwapPair{salt: salt}());
MendelSwapPair(pair).initialize(token0, token1);
getPair[token0][token1] = pair;
getPair[token1][token0] = pair; // populate mapping in the reverse direction
allPairs.push(pair);
emit PairCreated(token0, token1, pair, allPairs.length);
}
function setFeeTo(address _feeTo) external {
require(msg.sender == feeToSetter, "MendelSwap: FORBIDDEN");
feeTo = _feeTo;
}
function setFeeToSetter(address _feeToSetter) external {
require(msg.sender == feeToSetter, "MendelSwap: FORBIDDEN");
require(_feeToSetter != address(0), "MendelSwap: ZERO_ADDRESS");
feeToSetter = _feeToSetter;
}
/// @notice Point pairs at a MendelSwapOracle (or address(0) to disable dynamic fees).
function setOracle(address _oracle) external {
require(msg.sender == feeToSetter, "MendelSwap: FORBIDDEN");
oracle = _oracle;
emit OracleSet(_oracle);
}
/// @notice Tune the dynamic-fee curve. base ≤ max ≤ cap; slope ≤ cap.
function setFeeParams(uint256 _baseFeeBps, uint256 _maxFeeBps, uint256 _slopeBps) external {
require(msg.sender == feeToSetter, "MendelSwap: FORBIDDEN");
require(_baseFeeBps <= _maxFeeBps, "MendelSwap: BASE_GT_MAX");
require(_maxFeeBps <= MAX_FEE_CAP_BPS, "MendelSwap: FEE_TOO_HIGH");
require(_slopeBps <= MAX_SLOPE_BPS, "MendelSwap: SLOPE_TOO_HIGH");
baseFeeBps = _baseFeeBps;
maxFeeBps = _maxFeeBps;
slopeBps = _slopeBps;
emit FeeParamsSet(_baseFeeBps, _maxFeeBps, _slopeBps);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_feeToSetter",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "FeeParamsSet",
"type": "event",
"inputs": [
{
"name": "baseFeeBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "maxFeeBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "slopeBps",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OracleSet",
"type": "event",
"inputs": [
{
"name": "oracle",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PairCreated",
"type": "event",
"inputs": [
{
"name": "token0",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token1",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pair",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "allPairsLength",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MAX_FEE_CAP_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_SLOPE_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allPairs",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "allPairsLength",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "baseFeeBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "createPair",
"type": "function",
"inputs": [
{
"name": "tokenA",
"type": "address",
"internalType": "address"
},
{
"name": "tokenB",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "pair",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "feeConfig",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "oracle_",
"type": "address",
"internalType": "address"
},
{
"name": "baseFeeBps_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxFeeBps_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "slopeBps_",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "feeTo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "feeToSetter",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getPair",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "maxFeeBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "oracle",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pairCodeHash",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "pure"
},
{
"name": "setFeeParams",
"type": "function",
"inputs": [
{
"name": "_baseFeeBps",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_maxFeeBps",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_slopeBps",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setFeeTo",
"type": "function",
"inputs": [
{
"name": "_feeTo",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setFeeToSetter",
"type": "function",
"inputs": [
{
"name": "_feeToSetter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setOracle",
"type": "function",
"inputs": [
{
"name": "_oracle",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "slopeBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
}
]0x6080604052601e600355606460045561271060055534801561001f575f80fd5b506040516137d43803806137d483398101604081905261003e916100bd565b6001600160a01b0381166100985760405162461bcd60e51b815260206004820152601860248201527f4d656e64656c537761703a205a45524f5f414444524553530000000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790556100ea565b5f602082840312156100cd575f80fd5b81516001600160a01b03811681146100e3575f80fd5b9392505050565b6136dd806100f75f395ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c80638be9f0e21161009e578063bf5a59401161006e578063bf5a594014610228578063bf769a3f14610231578063c9c653961461023a578063e6a439051461024d578063f46901ed14610280575f80fd5b80638be9f0e2146101f15780639aab924814610204578063a0151ff71461020c578063a2e74af614610215575f80fd5b80631e3dd18b116100e45780631e3dd18b146101785780631e5eb1d01461018b578063574f2ba3146101c15780637adbf973146101c95780637dc0d1d0146101de575f80fd5b8063017e7e5814610115578063056f157e14610144578063094b74151461015b5780630fbc00121461016e575b5f80fd5b5f54610127906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d60055481565b60405190815260200161013b565b600154610127906001600160a01b031681565b61014d620f424081565b6101276101863660046108c0565b610293565b600254600354600454600554604080516001600160a01b039095168552602085019390935291830152606082015260800161013b565b60075461014d565b6101dc6101d73660046108f2565b6102bb565b005b600254610127906001600160a01b031681565b6101dc6101ff366004610912565b610337565b61014d6104ab565b61014d6103e881565b6101dc6102233660046108f2565b6104dc565b61014d60035481565b61014d60045481565b61012761024836600461093b565b610579565b61012761025b36600461093b565b600660209081525f92835260408084209091529082529020546001600160a01b031681565b6101dc61028e3660046108f2565b610868565b600781815481106102a2575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001546001600160a01b031633146102ee5760405162461bcd60e51b81526004016102e59061096c565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa905f90a250565b6001546001600160a01b031633146103615760405162461bcd60e51b81526004016102e59061096c565b818311156103b15760405162461bcd60e51b815260206004820152601760248201527f4d656e64656c537761703a20424153455f47545f4d415800000000000000000060448201526064016102e5565b6103e88211156104035760405162461bcd60e51b815260206004820152601860248201527f4d656e64656c537761703a204645455f544f4f5f48494748000000000000000060448201526064016102e5565b620f42408111156104565760405162461bcd60e51b815260206004820152601a60248201527f4d656e64656c537761703a20534c4f50455f544f4f5f4849474800000000000060448201526064016102e5565b60038390556004829055600581905560408051848152602081018490529081018290527f16e2b9b73bbb7d8300e2d90dbc5a1f69ed112b91f46284990d9b3a391b4bdd4d9060600160405180910390a1505050565b5f604051806020016104bc906108b3565b6020820181038252601f19601f8201166040525080519060200120905090565b6001546001600160a01b031633146105065760405162461bcd60e51b81526004016102e59061096c565b6001600160a01b0381166105575760405162461bcd60e51b81526020600482015260186024820152774d656e64656c537761703a205a45524f5f4144445245535360401b60448201526064016102e5565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f816001600160a01b0316836001600160a01b0316036105db5760405162461bcd60e51b815260206004820152601f60248201527f4d656e64656c537761703a204944454e544943414c5f4144445245535345530060448201526064016102e5565b5f80836001600160a01b0316856001600160a01b0316106105fd578385610600565b84845b90925090506001600160a01b0382166106565760405162461bcd60e51b81526020600482015260186024820152774d656e64656c537761703a205a45524f5f4144445245535360401b60448201526064016102e5565b6001600160a01b038281165f908152600660209081526040808320858516845290915290205416156106ca5760405162461bcd60e51b815260206004820152601760248201527f4d656e64656c537761703a20504149525f45584953545300000000000000000060448201526064016102e5565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b1660348201525f906048016040516020818303038152906040528051906020012090508060405161071a906108b3565b8190604051809103905ff5905080158015610737573d5f803e3d5ffd5b5060405163485cc95560e01b81526001600160a01b03858116600483015284811660248301529195509085169063485cc955906044015f604051808303815f87803b158015610784575f80fd5b505af1158015610796573d5f803e3d5ffd5b505050506001600160a01b038381165f8181526006602081815260408084208887168086529083528185208054978c166001600160a01b031998891681179091559383528185208686528352818520805488168517905560078054600181018255958190527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889095018054909716841790965592548351928352908201527f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9910160405180910390a350505092915050565b6001546001600160a01b031633146108925760405162461bcd60e51b81526004016102e59061096c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b612d0c8061099c83390190565b5f602082840312156108d0575f80fd5b5035919050565b80356001600160a01b03811681146108ed575f80fd5b919050565b5f60208284031215610902575f80fd5b61090b826108d7565b9392505050565b5f805f60608486031215610924575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561094c575f80fd5b610955836108d7565b9150610963602084016108d7565b90509250929050565b60208082526015908201527426b2b73232b629bbb0b81d102327a92124a22222a760591b60408201526060019056fe60806040526001600c55348015610014575f80fd5b50604080518082018252600d81526c04d656e64656c53776170204c5609c1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f34dad7209973df2ee38afc738601acd0b7ebc744701278676e17cc13984bdd76918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f198184030181529190528051602090910120600355600580546001600160a01b03191633179055612bfe8061010e5f395ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c80636a627842116100fe578063ba9a7a561161009e578063d21220a71161006e578063d21220a71461046b578063d505accf1461047e578063dd62ed3e14610491578063fff6cae9146104bb575f80fd5b8063ba9a7a5614610429578063bc25cf7714610432578063c45a015514610445578063ca706bcf14610458575f80fd5b80637ecebe00116100d95780637ecebe00146103a757806389afcb44146103c657806395d89b41146103ee578063a9059cbb14610416575f80fd5b80636a6278421461036c57806370a082311461037f5780637464fc3d1461039e575f80fd5b80632552b1db11610174578063485cc95511610144578063485cc955146103345780635909c0d5146103475780635a3d549314610350578063632db21c14610359575f80fd5b80632552b1db146102d757806330adf81f146102ea578063313ce567146103115780633644e5151461032b575f80fd5b8063095ea7b3116101af578063095ea7b3146102605780630dfe16811461028357806318160ddd146102ae57806323b872dd146102c4575f80fd5b8063022c0d9f146101d557806306fdde03146101ea5780630902f1ac1461022c575b5f80fd5b6101e86101e336600461266b565b6104c3565b005b6102166040518060400160405280600d81526020016c04d656e64656c53776170204c5609c1b81525081565b604051610223919061271b565b60405180910390f35b610234610925565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610223565b61027361026e36600461274d565b61094f565b6040519015158152602001610223565b600654610296906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b6102b65f5481565b604051908152602001610223565b6102736102d2366004612777565b610965565b6102b66102e536600461274d565b6109d4565b6102b67f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610319601281565b60405160ff9091168152602001610223565b6102b660035481565b6101e86103423660046127b5565b610a5d565b6102b660095481565b6102b6600a5481565b6102b661036736600461274d565b610add565b6102b661037a3660046127ec565b610c61565b6102b661038d3660046127ec565b60016020525f908152604090205481565b6102b6600b5481565b6102b66103b53660046127ec565b60046020525f908152604090205481565b6103d96103d43660046127ec565b610f22565b60408051928352602083019190915201610223565b6102166040518060400160405280600981526020016804d454e44454c2d4c560bc1b81525081565b61027361042436600461274d565b611278565b6102b66103e881565b6101e86104403660046127ec565b611284565b600554610296906001600160a01b031681565b6102b661046636600461274d565b611394565b600754610296906001600160a01b031681565b6101e861048c366004612807565b611469565b6102b661049f3660046127b5565b600260209081525f928352604080842090915290825290205481565b6101e861167a565b600c546001146104ee5760405162461bcd60e51b81526004016104e590612878565b60405180910390fd5b5f600c55841515806104ff57505f84115b61051b5760405162461bcd60e51b81526004016104e5906128a4565b5f80610525610925565b5091509150816001600160701b03168710801561054a5750806001600160701b031686105b6105665760405162461bcd60e51b81526004016104e5906128ea565b6006546007545f9182916001600160a01b039182169190811690891682148015906105a35750806001600160a01b0316896001600160a01b031614155b6105e85760405162461bcd60e51b81526020600482015260166024820152754d656e64656c537761703a20494e56414c49445f544f60501b60448201526064016104e5565b8a156105f9576105f9828a8d611799565b891561060a5761060a818a8c611799565b86156106725760405163b9a86c6360e01b81526001600160a01b038a169063b9a86c63906106449033908f908f908e908e9060040161292c565b5f604051808303815f87803b15801561065b575f80fd5b505af115801561066d573d5f803e3d5ffd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612977565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa15801561071d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107419190612977565b925050505f89856001600160701b031661075b91906129a2565b8311610767575f610784565b61077a8a6001600160701b0387166129a2565b61078490846129a2565b90505f61079a8a6001600160701b0387166129a2565b83116107a6575f6107c3565b6107b98a6001600160701b0387166129a2565b6107c390846129a2565b90505f8211806107d257505f81115b6107ee5760405162461bcd60e51b81526004016104e5906129b5565b5f6107fb878787876118df565b90505f61080882856129fa565b610814876127106129fa565b61081e91906129a2565b90505f61082b83856129fa565b610837876127106129fa565b61084191906129a2565b90506108596001600160701b03808a16908b166129fa565b610867906305f5e1006129fa565b61087182846129fa565b10156108af5760405162461bcd60e51b815260206004820152600d60248201526c4d656e64656c537761703a204b60981b60448201526064016104e5565b5050506108be84848888611a69565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b5f61095b338484611c21565b5060015b92915050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f1981146109be5761099a83826129a2565b6001600160a01b0386165f9081526002602090815260408083203384529091529020555b6109c9858585611c82565b506001949350505050565b6006545f906001600160a01b03848116911614806109ff57506007546001600160a01b038481169116145b610a1b5760405162461bcd60e51b81526004016104e590612a11565b5f8211610a3a5760405162461bcd60e51b81526004016104e5906129b5565b600654610a55906001600160a01b0385811691161483611d21565b949350505050565b6005546001600160a01b03163314610aaf5760405162461bcd60e51b815260206004820152601560248201527426b2b73232b629bbb0b81d102327a92124a22222a760591b60448201526064016104e5565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b5f808211610afd5760405162461bcd60e51b81526004016104e5906128a4565b6006546001600160a01b0384811691161480610b2657506007546001600160a01b038481169116145b610b425760405162461bcd60e51b81526004016104e590612a11565b5f80610b4c610925565b50915091505f826001600160701b0316118015610b7157505f816001600160701b0316115b610b8d5760405162461bcd60e51b81526004016104e5906128ea565b6006545f9081906001600160a01b03888116911614610bbf57836001600160701b0316836001600160701b0316610bd4565b826001600160701b0316846001600160701b03165b91509150808610610bf75760405162461bcd60e51b81526004016104e5906128ea565b5f610c00611d7b565b90505f610c0d88856129fa565b610c19906127106129fa565b90505f610c28836127106129a2565b610c328a866129a2565b610c3c91906129fa565b9050610c488183612a5c565b610c53906001612a6f565b9a9950505050505050505050565b5f600c54600114610c845760405162461bcd60e51b81526004016104e590612878565b5f600c81905580610c93610925565b506006546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612977565b6007546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190612977565b90505f610d8b6001600160701b038616846129a2565b90505f610da16001600160701b038616846129a2565b90505f610dae8787611ea0565b5f8054919250819003610ded576103e8610dd0610dcb85876129fa565b611fd4565b610dda91906129a2565b9850610de85f6103e8612042565b610e34565b610e316001600160701b038916610e0483876129fa565b610e0e9190612a5c565b6001600160701b038916610e2284876129fa565b610e2c9190612a5c565b6120c8565b98505b5f8911610e955760405162461bcd60e51b815260206004820152602960248201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604482015268151657d3525395115160ba1b60648201526084016104e5565b610e9f8a8a612042565b610eab86868a8a611a69565b8115610ed457600854610ed0906001600160701b03600160701b8204811691166129fa565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b5f80600c54600114610f465760405162461bcd60e51b81526004016104e590612878565b5f600c81905580610f55610925565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b03908116929116905f9083906370a0823190602401602060405180830381865afa158015610fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd09190612977565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b9190612977565b305f908152600160205260408120549192506110578888611ea0565b5f549091508061106786856129fa565b6110719190612a5c565b9a508061107e85856129fa565b6110889190612a5c565b99505f8b11801561109857505f8a115b6110f65760405162461bcd60e51b815260206004820152602960248201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604482015268151657d0955493915160ba1b60648201526084016104e5565b61110030846120df565b61110b878d8d611799565b611116868d8c611799565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015611158573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117c9190612977565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa1580156111c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e59190612977565b93506111f385858b8b611a69565b811561121c57600854611218906001600160701b03600160701b8204811691166129fa565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b5f61095b338484611c82565b600c546001146112a65760405162461bcd60e51b81526004016104e590612878565b5f600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b03938416939092169161134291849186916001600160701b03169083906370a08231906024015b602060405180830381865afa15801561130f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113339190612977565b61133d91906129a2565b611799565b6008546040516370a0823160e01b815230600482015261138a9183918691600160701b90046001600160701b0316906001600160a01b038416906370a08231906024016112f4565b50506001600c5550565b5f8082116113b45760405162461bcd60e51b81526004016104e5906129b5565b6006546001600160a01b03848116911614806113dd57506007546001600160a01b038481169116145b6113f95760405162461bcd60e51b81526004016104e590612a11565b5f80611403610925565b50915091505f826001600160701b031611801561142857505f816001600160701b0316115b6114445760405162461bcd60e51b81526004016104e5906128ea565b60065461145f906001600160a01b0387811691161485611d21565b5095945050505050565b428410156114af5760405162461bcd60e51b815260206004820152601360248201527213595b99195b14ddd85c0e8811561412549151606a1b60448201526064016104e5565b6003546001600160a01b0388165f90815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761150183612a82565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161157a92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156115e2573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906116185750886001600160a01b0316816001600160a01b0316145b6116645760405162461bcd60e51b815260206004820152601d60248201527f4d656e64656c537761703a20494e56414c49445f5349474e415455524500000060448201526064016104e5565b61166f898989611c21565b505050505050505050565b600c5460011461169c5760405162461bcd60e51b81526004016104e590612878565b5f600c556006546040516370a0823160e01b8152306004820152611792916001600160a01b0316906370a0823190602401602060405180830381865afa1580156116e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170c9190612977565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611752573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117769190612977565b6008546001600160701b0380821691600160701b900416611a69565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291515f9283928716916118249190612a9a565b5f604051808303815f865af19150503d805f811461185d576040519150601f19603f3d011682016040523d82523d5f602084013e611862565b606091505b509150915081801561188c57508051158061188c57508080602001905181019061188c9190612ac4565b6118d85760405162461bcd60e51b815260206004820152601b60248201527f4d656e64656c537761703a205452414e534645525f4641494c4544000000000060448201526064016104e5565b5050505050565b5f805f805f60055f9054906101000a90046001600160a01b03166001600160a01b0316631e5eb1d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612add565b929650909450925090506001600160a01b03841661197c5782945050505050610a55565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91829190871690631d6807cf906044016040805180830381865afa1580156119d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f69190612b19565b9150915081611a0d57849650505050505050610a55565b5f611a33611a2d8d6001600160701b03168d6001600160701b031661215f565b8361217d565b90505f611a49611a438c8c61215f565b8461217d565b9050611a5882828989896121c6565b9d9c50505050505050505050505050565b6001600160701b038411801590611a8757506001600160701b038311155b611aca5760405162461bcd60e51b81526020600482015260146024820152734d656e64656c537761703a204f564552464c4f5760601b60448201526064016104e5565b5f611ada64010000000042612b43565b60085490915063ffffffff600160e01b9091048116820390811615801590611b0a57506001600160701b03841615155b8015611b1e57506001600160701b03831615155b15611b89578063ffffffff16611b4685611b3786612223565b6001600160e01b03169061223b565b600980546001600160e01b03929092169290920201905563ffffffff8116611b7184611b3787612223565b600a80546001600160e01b0392909216929092020190555b506008805463ffffffff8316600160e01b026001600160e01b036001600160701b03888116600160701b9081026001600160e01b03199095168b83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a15050505050565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383165f9081526001602052604081208054839290611ca99084906129a2565b90915550506001600160a01b0382165f9081526001602052604081208054839290611cd5908490612a6f565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7591815260200190565b5f805f80611d2f868661224f565b9150915080611d6457611d54826060015183608001518460a001518560e001516124a9565b8260e00151935093505050611d74565b611d6d826124f8565b9350935050505b9250929050565b5f805f8060055f9054906101000a90046001600160a01b03166001600160a01b0316631e5eb1d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611dcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df39190612add565b50919450925090506001600160a01b038316611e10575092915050565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91851690631d6807cf906044016040805180830381865afa158015611e63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e879190612b19565b50905080611e955782611e97565b815b94505050505090565b5f8060055f9054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f169190612b56565b600b546001600160a01b038216158015945091925090611fc1578015611fbc575f611f50610dcb6001600160701b038088169089166129fa565b90505f611f5c83611fd4565b905080821115611fb9575f611f7182846129a2565b5f54611f7d91906129fa565b90505f82611f8c8560056129fa565b611f969190612a6f565b90505f611fa38284612a5c565b90508015611fb557611fb58782612042565b5050505b50505b611fcc565b8015611fcc575f600b555b505092915050565b5f60038211156120335750805f611fec600283612a5c565b611ff7906001612a6f565b90505b8181101561202d579050806002816120128186612a5c565b61201c9190612a6f565b6120269190612a5c565b9050611ffa565b50919050565b811561203d575060015b919050565b805f808282546120529190612a6f565b90915550506001600160a01b0382165f908152600160205260408120805483929061207e908490612a6f565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b5f8183106120d657816120d8565b825b9392505050565b6001600160a01b0382165f90815260016020526040812080548392906121069084906129a2565b92505081905550805f8082825461211d91906129a2565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120bc565b5f8261217383670de0b6b3a76400006129fa565b6120d89190612a5c565b5f815f0361218c57505f61095f565b5f8284116121a35761219e84846129a2565b6121ad565b6121ad83856129a2565b9050826121bc612710836129fa565b610a559190612a5c565b5f8585116121d557508261221a565b5f6121e087876129a2565b90505f6127106121f085846129fa565b6121fa9190612a5c565b6122049087612a6f565b90508481116122135780612215565b845b925050505b95945050505050565b5f61095f600160701b6001600160701b038416612b71565b5f6120d86001600160701b03831684612ba3565b6122b56040518061016001604052805f6001600160701b031681526020015f6001600160701b031681526020015f151581526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f805f6122c0610925565b506001600160701b0380831687528116602087015287151560408701526060860187905290925090508561230757806001600160701b0316826001600160701b031661231c565b816001600160701b0316816001600160701b03165b60a0860152608080860191909152600554604080516301e5eb1d60e41b815290515f938493849384936001600160a01b0390921692631e5eb1d0926004808401938290030181865afa158015612374573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123989190612add565b60e08c018390526101008c018290526101208c01819052929650909450925090506001600160a01b0384166123d657505f9550611d74945050505050565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91829190871690631d6807cf906044016040805180830381865afa15801561242c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124509190612b19565b915091508161246a57505f9750611d749650505050505050565b60c08a0181905261249061248a6001600160701b03808b16908a1661215f565b8261217d565b6101408b01525060019750505050505050509250929050565b5f806124b7836127106129a2565b6124c190876129fa565b9050806124d0866127106129fa565b6124da9190612a6f565b6124e485836129fa565b6124ee9190612a5c565b9695505050505050565b60e08101515f90815b600381101561253857612522846060015185608001518660a00151856124a9565b925061252e848461258c565b9150600101612501565b50612551836060015184608001518560a00151846124a9565b91505f61255e848461258c565b90508181111561258657809150612583846060015185608001518660a00151856124a9565b92505b50915091565b5f806125af8460400151855f015186602001518760600151878960c001516125d1565b9050610a55846101400151828660e001518761010001518861012001516121c6565b5f805f8815612609576125ed866001600160701b038a16612a6f565b9150612602856001600160701b0389166129a2565b9050612634565b61261c856001600160701b038a166129a2565b9150612631866001600160701b038916612a6f565b90505b612647612641838361215f565b8561217d565b9998505050505050505050565b6001600160a01b0381168114612668575f80fd5b50565b5f805f805f6080868803121561267f575f80fd5b8535945060208601359350604086013561269881612654565b9250606086013567ffffffffffffffff808211156126b4575f80fd5b818801915088601f8301126126c7575f80fd5b8135818111156126d5575f80fd5b8960208285010111156126e6575f80fd5b9699959850939650602001949392505050565b5f5b838110156127135781810151838201526020016126fb565b50505f910152565b602081525f82518060208401526127398160408501602087016126f9565b601f01601f19169190910160400192915050565b5f806040838503121561275e575f80fd5b823561276981612654565b946020939093013593505050565b5f805f60608486031215612789575f80fd5b833561279481612654565b925060208401356127a481612654565b929592945050506040919091013590565b5f80604083850312156127c6575f80fd5b82356127d181612654565b915060208301356127e181612654565b809150509250929050565b5f602082840312156127fc575f80fd5b81356120d881612654565b5f805f805f805f60e0888a03121561281d575f80fd5b873561282881612654565b9650602088013561283881612654565b95506040880135945060608801359350608088013560ff8116811461285b575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526012908201527113595b99195b14ddd85c0e881313d0d2d15160721b604082015260600190565b60208082526026908201527f4d656e64656c537761703a20494e53554646494349454e545f4f55545055545f604082015265105353d5539560d21b606082015260800190565b60208082526022908201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604082015261545960f01b606082015260800190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612987575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561095f5761095f61298e565b60208082526025908201527f4d656e64656c537761703a20494e53554646494349454e545f494e5055545f416040820152641353d5539560da1b606082015260800190565b808202811582820484141761095f5761095f61298e565b60208082526019908201527f4d656e64656c537761703a20494e56414c49445f544f4b454e00000000000000604082015260600190565b634e487b7160e01b5f52601260045260245ffd5b5f82612a6a57612a6a612a48565b500490565b8082018082111561095f5761095f61298e565b5f60018201612a9357612a9361298e565b5060010190565b5f8251612aab8184602087016126f9565b9190910192915050565b8051801515811461203d575f80fd5b5f60208284031215612ad4575f80fd5b6120d882612ab5565b5f805f8060808587031215612af0575f80fd5b8451612afb81612654565b60208601516040870151606090970151919890975090945092505050565b5f8060408385031215612b2a575f80fd5b612b3383612ab5565b9150602083015190509250929050565b5f82612b5157612b51612a48565b500690565b5f60208284031215612b66575f80fd5b81516120d881612654565b6001600160e01b03828116828216818102831692918115828504821417612b9a57612b9a61298e565b50505092915050565b5f6001600160e01b0383811680612bbc57612bbc612a48565b9216919091049291505056fea264697066735822122035964f3ccb1f7d04ef9d43d699bc3a16a5deb0d567653d28590751c1261d353a64736f6c63430008180033a26469706673582212209efd611d25f9518e00836c5cdcc1dc632a462f097aac92963618814b5d8fce5364736f6c634300081800330000000000000000000000002010b4413c6da5cb72092701749bce115b63a146
0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c80638be9f0e21161009e578063bf5a59401161006e578063bf5a594014610228578063bf769a3f14610231578063c9c653961461023a578063e6a439051461024d578063f46901ed14610280575f80fd5b80638be9f0e2146101f15780639aab924814610204578063a0151ff71461020c578063a2e74af614610215575f80fd5b80631e3dd18b116100e45780631e3dd18b146101785780631e5eb1d01461018b578063574f2ba3146101c15780637adbf973146101c95780637dc0d1d0146101de575f80fd5b8063017e7e5814610115578063056f157e14610144578063094b74151461015b5780630fbc00121461016e575b5f80fd5b5f54610127906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d60055481565b60405190815260200161013b565b600154610127906001600160a01b031681565b61014d620f424081565b6101276101863660046108c0565b610293565b600254600354600454600554604080516001600160a01b039095168552602085019390935291830152606082015260800161013b565b60075461014d565b6101dc6101d73660046108f2565b6102bb565b005b600254610127906001600160a01b031681565b6101dc6101ff366004610912565b610337565b61014d6104ab565b61014d6103e881565b6101dc6102233660046108f2565b6104dc565b61014d60035481565b61014d60045481565b61012761024836600461093b565b610579565b61012761025b36600461093b565b600660209081525f92835260408084209091529082529020546001600160a01b031681565b6101dc61028e3660046108f2565b610868565b600781815481106102a2575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001546001600160a01b031633146102ee5760405162461bcd60e51b81526004016102e59061096c565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa905f90a250565b6001546001600160a01b031633146103615760405162461bcd60e51b81526004016102e59061096c565b818311156103b15760405162461bcd60e51b815260206004820152601760248201527f4d656e64656c537761703a20424153455f47545f4d415800000000000000000060448201526064016102e5565b6103e88211156104035760405162461bcd60e51b815260206004820152601860248201527f4d656e64656c537761703a204645455f544f4f5f48494748000000000000000060448201526064016102e5565b620f42408111156104565760405162461bcd60e51b815260206004820152601a60248201527f4d656e64656c537761703a20534c4f50455f544f4f5f4849474800000000000060448201526064016102e5565b60038390556004829055600581905560408051848152602081018490529081018290527f16e2b9b73bbb7d8300e2d90dbc5a1f69ed112b91f46284990d9b3a391b4bdd4d9060600160405180910390a1505050565b5f604051806020016104bc906108b3565b6020820181038252601f19601f8201166040525080519060200120905090565b6001546001600160a01b031633146105065760405162461bcd60e51b81526004016102e59061096c565b6001600160a01b0381166105575760405162461bcd60e51b81526020600482015260186024820152774d656e64656c537761703a205a45524f5f4144445245535360401b60448201526064016102e5565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f816001600160a01b0316836001600160a01b0316036105db5760405162461bcd60e51b815260206004820152601f60248201527f4d656e64656c537761703a204944454e544943414c5f4144445245535345530060448201526064016102e5565b5f80836001600160a01b0316856001600160a01b0316106105fd578385610600565b84845b90925090506001600160a01b0382166106565760405162461bcd60e51b81526020600482015260186024820152774d656e64656c537761703a205a45524f5f4144445245535360401b60448201526064016102e5565b6001600160a01b038281165f908152600660209081526040808320858516845290915290205416156106ca5760405162461bcd60e51b815260206004820152601760248201527f4d656e64656c537761703a20504149525f45584953545300000000000000000060448201526064016102e5565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b1660348201525f906048016040516020818303038152906040528051906020012090508060405161071a906108b3565b8190604051809103905ff5905080158015610737573d5f803e3d5ffd5b5060405163485cc95560e01b81526001600160a01b03858116600483015284811660248301529195509085169063485cc955906044015f604051808303815f87803b158015610784575f80fd5b505af1158015610796573d5f803e3d5ffd5b505050506001600160a01b038381165f8181526006602081815260408084208887168086529083528185208054978c166001600160a01b031998891681179091559383528185208686528352818520805488168517905560078054600181018255958190527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889095018054909716841790965592548351928352908201527f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9910160405180910390a350505092915050565b6001546001600160a01b031633146108925760405162461bcd60e51b81526004016102e59061096c565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b612d0c8061099c83390190565b5f602082840312156108d0575f80fd5b5035919050565b80356001600160a01b03811681146108ed575f80fd5b919050565b5f60208284031215610902575f80fd5b61090b826108d7565b9392505050565b5f805f60608486031215610924575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561094c575f80fd5b610955836108d7565b9150610963602084016108d7565b90509250929050565b60208082526015908201527426b2b73232b629bbb0b81d102327a92124a22222a760591b60408201526060019056fe60806040526001600c55348015610014575f80fd5b50604080518082018252600d81526c04d656e64656c53776170204c5609c1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f34dad7209973df2ee38afc738601acd0b7ebc744701278676e17cc13984bdd76918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f198184030181529190528051602090910120600355600580546001600160a01b03191633179055612bfe8061010e5f395ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c80636a627842116100fe578063ba9a7a561161009e578063d21220a71161006e578063d21220a71461046b578063d505accf1461047e578063dd62ed3e14610491578063fff6cae9146104bb575f80fd5b8063ba9a7a5614610429578063bc25cf7714610432578063c45a015514610445578063ca706bcf14610458575f80fd5b80637ecebe00116100d95780637ecebe00146103a757806389afcb44146103c657806395d89b41146103ee578063a9059cbb14610416575f80fd5b80636a6278421461036c57806370a082311461037f5780637464fc3d1461039e575f80fd5b80632552b1db11610174578063485cc95511610144578063485cc955146103345780635909c0d5146103475780635a3d549314610350578063632db21c14610359575f80fd5b80632552b1db146102d757806330adf81f146102ea578063313ce567146103115780633644e5151461032b575f80fd5b8063095ea7b3116101af578063095ea7b3146102605780630dfe16811461028357806318160ddd146102ae57806323b872dd146102c4575f80fd5b8063022c0d9f146101d557806306fdde03146101ea5780630902f1ac1461022c575b5f80fd5b6101e86101e336600461266b565b6104c3565b005b6102166040518060400160405280600d81526020016c04d656e64656c53776170204c5609c1b81525081565b604051610223919061271b565b60405180910390f35b610234610925565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610223565b61027361026e36600461274d565b61094f565b6040519015158152602001610223565b600654610296906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b6102b65f5481565b604051908152602001610223565b6102736102d2366004612777565b610965565b6102b66102e536600461274d565b6109d4565b6102b67f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610319601281565b60405160ff9091168152602001610223565b6102b660035481565b6101e86103423660046127b5565b610a5d565b6102b660095481565b6102b6600a5481565b6102b661036736600461274d565b610add565b6102b661037a3660046127ec565b610c61565b6102b661038d3660046127ec565b60016020525f908152604090205481565b6102b6600b5481565b6102b66103b53660046127ec565b60046020525f908152604090205481565b6103d96103d43660046127ec565b610f22565b60408051928352602083019190915201610223565b6102166040518060400160405280600981526020016804d454e44454c2d4c560bc1b81525081565b61027361042436600461274d565b611278565b6102b66103e881565b6101e86104403660046127ec565b611284565b600554610296906001600160a01b031681565b6102b661046636600461274d565b611394565b600754610296906001600160a01b031681565b6101e861048c366004612807565b611469565b6102b661049f3660046127b5565b600260209081525f928352604080842090915290825290205481565b6101e861167a565b600c546001146104ee5760405162461bcd60e51b81526004016104e590612878565b60405180910390fd5b5f600c55841515806104ff57505f84115b61051b5760405162461bcd60e51b81526004016104e5906128a4565b5f80610525610925565b5091509150816001600160701b03168710801561054a5750806001600160701b031686105b6105665760405162461bcd60e51b81526004016104e5906128ea565b6006546007545f9182916001600160a01b039182169190811690891682148015906105a35750806001600160a01b0316896001600160a01b031614155b6105e85760405162461bcd60e51b81526020600482015260166024820152754d656e64656c537761703a20494e56414c49445f544f60501b60448201526064016104e5565b8a156105f9576105f9828a8d611799565b891561060a5761060a818a8c611799565b86156106725760405163b9a86c6360e01b81526001600160a01b038a169063b9a86c63906106449033908f908f908e908e9060040161292c565b5f604051808303815f87803b15801561065b575f80fd5b505af115801561066d573d5f803e3d5ffd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156106b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d89190612977565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa15801561071d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107419190612977565b925050505f89856001600160701b031661075b91906129a2565b8311610767575f610784565b61077a8a6001600160701b0387166129a2565b61078490846129a2565b90505f61079a8a6001600160701b0387166129a2565b83116107a6575f6107c3565b6107b98a6001600160701b0387166129a2565b6107c390846129a2565b90505f8211806107d257505f81115b6107ee5760405162461bcd60e51b81526004016104e5906129b5565b5f6107fb878787876118df565b90505f61080882856129fa565b610814876127106129fa565b61081e91906129a2565b90505f61082b83856129fa565b610837876127106129fa565b61084191906129a2565b90506108596001600160701b03808a16908b166129fa565b610867906305f5e1006129fa565b61087182846129fa565b10156108af5760405162461bcd60e51b815260206004820152600d60248201526c4d656e64656c537761703a204b60981b60448201526064016104e5565b5050506108be84848888611a69565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600c55505050505050505050565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b5f61095b338484611c21565b5060015b92915050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f1981146109be5761099a83826129a2565b6001600160a01b0386165f9081526002602090815260408083203384529091529020555b6109c9858585611c82565b506001949350505050565b6006545f906001600160a01b03848116911614806109ff57506007546001600160a01b038481169116145b610a1b5760405162461bcd60e51b81526004016104e590612a11565b5f8211610a3a5760405162461bcd60e51b81526004016104e5906129b5565b600654610a55906001600160a01b0385811691161483611d21565b949350505050565b6005546001600160a01b03163314610aaf5760405162461bcd60e51b815260206004820152601560248201527426b2b73232b629bbb0b81d102327a92124a22222a760591b60448201526064016104e5565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b5f808211610afd5760405162461bcd60e51b81526004016104e5906128a4565b6006546001600160a01b0384811691161480610b2657506007546001600160a01b038481169116145b610b425760405162461bcd60e51b81526004016104e590612a11565b5f80610b4c610925565b50915091505f826001600160701b0316118015610b7157505f816001600160701b0316115b610b8d5760405162461bcd60e51b81526004016104e5906128ea565b6006545f9081906001600160a01b03888116911614610bbf57836001600160701b0316836001600160701b0316610bd4565b826001600160701b0316846001600160701b03165b91509150808610610bf75760405162461bcd60e51b81526004016104e5906128ea565b5f610c00611d7b565b90505f610c0d88856129fa565b610c19906127106129fa565b90505f610c28836127106129a2565b610c328a866129a2565b610c3c91906129fa565b9050610c488183612a5c565b610c53906001612a6f565b9a9950505050505050505050565b5f600c54600114610c845760405162461bcd60e51b81526004016104e590612878565b5f600c81905580610c93610925565b506006546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612977565b6007546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190612977565b90505f610d8b6001600160701b038616846129a2565b90505f610da16001600160701b038616846129a2565b90505f610dae8787611ea0565b5f8054919250819003610ded576103e8610dd0610dcb85876129fa565b611fd4565b610dda91906129a2565b9850610de85f6103e8612042565b610e34565b610e316001600160701b038916610e0483876129fa565b610e0e9190612a5c565b6001600160701b038916610e2284876129fa565b610e2c9190612a5c565b6120c8565b98505b5f8911610e955760405162461bcd60e51b815260206004820152602960248201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604482015268151657d3525395115160ba1b60648201526084016104e5565b610e9f8a8a612042565b610eab86868a8a611a69565b8115610ed457600854610ed0906001600160701b03600160701b8204811691166129fa565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600c5550949695505050505050565b5f80600c54600114610f465760405162461bcd60e51b81526004016104e590612878565b5f600c81905580610f55610925565b506006546007546040516370a0823160e01b81523060048201529395509193506001600160a01b03908116929116905f9083906370a0823190602401602060405180830381865afa158015610fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd09190612977565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b9190612977565b305f908152600160205260408120549192506110578888611ea0565b5f549091508061106786856129fa565b6110719190612a5c565b9a508061107e85856129fa565b6110889190612a5c565b99505f8b11801561109857505f8a115b6110f65760405162461bcd60e51b815260206004820152602960248201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604482015268151657d0955493915160ba1b60648201526084016104e5565b61110030846120df565b61110b878d8d611799565b611116868d8c611799565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015611158573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117c9190612977565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa1580156111c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e59190612977565b93506111f385858b8b611a69565b811561121c57600854611218906001600160701b03600160701b8204811691166129fa565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600c81905550915091565b5f61095b338484611c82565b600c546001146112a65760405162461bcd60e51b81526004016104e590612878565b5f600c556006546007546008546040516370a0823160e01b81523060048201526001600160a01b03938416939092169161134291849186916001600160701b03169083906370a08231906024015b602060405180830381865afa15801561130f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113339190612977565b61133d91906129a2565b611799565b6008546040516370a0823160e01b815230600482015261138a9183918691600160701b90046001600160701b0316906001600160a01b038416906370a08231906024016112f4565b50506001600c5550565b5f8082116113b45760405162461bcd60e51b81526004016104e5906129b5565b6006546001600160a01b03848116911614806113dd57506007546001600160a01b038481169116145b6113f95760405162461bcd60e51b81526004016104e590612a11565b5f80611403610925565b50915091505f826001600160701b031611801561142857505f816001600160701b0316115b6114445760405162461bcd60e51b81526004016104e5906128ea565b60065461145f906001600160a01b0387811691161485611d21565b5095945050505050565b428410156114af5760405162461bcd60e51b815260206004820152601360248201527213595b99195b14ddd85c0e8811561412549151606a1b60448201526064016104e5565b6003546001600160a01b0388165f90815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b91908761150183612a82565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161157a92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156115e2573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906116185750886001600160a01b0316816001600160a01b0316145b6116645760405162461bcd60e51b815260206004820152601d60248201527f4d656e64656c537761703a20494e56414c49445f5349474e415455524500000060448201526064016104e5565b61166f898989611c21565b505050505050505050565b600c5460011461169c5760405162461bcd60e51b81526004016104e590612878565b5f600c556006546040516370a0823160e01b8152306004820152611792916001600160a01b0316906370a0823190602401602060405180830381865afa1580156116e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170c9190612977565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611752573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117769190612977565b6008546001600160701b0380821691600160701b900416611a69565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291515f9283928716916118249190612a9a565b5f604051808303815f865af19150503d805f811461185d576040519150601f19603f3d011682016040523d82523d5f602084013e611862565b606091505b509150915081801561188c57508051158061188c57508080602001905181019061188c9190612ac4565b6118d85760405162461bcd60e51b815260206004820152601b60248201527f4d656e64656c537761703a205452414e534645525f4641494c4544000000000060448201526064016104e5565b5050505050565b5f805f805f60055f9054906101000a90046001600160a01b03166001600160a01b0316631e5eb1d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611934573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119589190612add565b929650909450925090506001600160a01b03841661197c5782945050505050610a55565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91829190871690631d6807cf906044016040805180830381865afa1580156119d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f69190612b19565b9150915081611a0d57849650505050505050610a55565b5f611a33611a2d8d6001600160701b03168d6001600160701b031661215f565b8361217d565b90505f611a49611a438c8c61215f565b8461217d565b9050611a5882828989896121c6565b9d9c50505050505050505050505050565b6001600160701b038411801590611a8757506001600160701b038311155b611aca5760405162461bcd60e51b81526020600482015260146024820152734d656e64656c537761703a204f564552464c4f5760601b60448201526064016104e5565b5f611ada64010000000042612b43565b60085490915063ffffffff600160e01b9091048116820390811615801590611b0a57506001600160701b03841615155b8015611b1e57506001600160701b03831615155b15611b89578063ffffffff16611b4685611b3786612223565b6001600160e01b03169061223b565b600980546001600160e01b03929092169290920201905563ffffffff8116611b7184611b3787612223565b600a80546001600160e01b0392909216929092020190555b506008805463ffffffff8316600160e01b026001600160e01b036001600160701b03888116600160701b9081026001600160e01b03199095168b83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a15050505050565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383165f9081526001602052604081208054839290611ca99084906129a2565b90915550506001600160a01b0382165f9081526001602052604081208054839290611cd5908490612a6f565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c7591815260200190565b5f805f80611d2f868661224f565b9150915080611d6457611d54826060015183608001518460a001518560e001516124a9565b8260e00151935093505050611d74565b611d6d826124f8565b9350935050505b9250929050565b5f805f8060055f9054906101000a90046001600160a01b03166001600160a01b0316631e5eb1d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611dcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df39190612add565b50919450925090506001600160a01b038316611e10575092915050565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91851690631d6807cf906044016040805180830381865afa158015611e63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e879190612b19565b50905080611e955782611e97565b815b94505050505090565b5f8060055f9054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f169190612b56565b600b546001600160a01b038216158015945091925090611fc1578015611fbc575f611f50610dcb6001600160701b038088169089166129fa565b90505f611f5c83611fd4565b905080821115611fb9575f611f7182846129a2565b5f54611f7d91906129fa565b90505f82611f8c8560056129fa565b611f969190612a6f565b90505f611fa38284612a5c565b90508015611fb557611fb58782612042565b5050505b50505b611fcc565b8015611fcc575f600b555b505092915050565b5f60038211156120335750805f611fec600283612a5c565b611ff7906001612a6f565b90505b8181101561202d579050806002816120128186612a5c565b61201c9190612a6f565b6120269190612a5c565b9050611ffa565b50919050565b811561203d575060015b919050565b805f808282546120529190612a6f565b90915550506001600160a01b0382165f908152600160205260408120805483929061207e908490612a6f565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b5f8183106120d657816120d8565b825b9392505050565b6001600160a01b0382165f90815260016020526040812080548392906121069084906129a2565b92505081905550805f8082825461211d91906129a2565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120bc565b5f8261217383670de0b6b3a76400006129fa565b6120d89190612a5c565b5f815f0361218c57505f61095f565b5f8284116121a35761219e84846129a2565b6121ad565b6121ad83856129a2565b9050826121bc612710836129fa565b610a559190612a5c565b5f8585116121d557508261221a565b5f6121e087876129a2565b90505f6127106121f085846129fa565b6121fa9190612a5c565b6122049087612a6f565b90508481116122135780612215565b845b925050505b95945050505050565b5f61095f600160701b6001600160701b038416612b71565b5f6120d86001600160701b03831684612ba3565b6122b56040518061016001604052805f6001600160701b031681526020015f6001600160701b031681526020015f151581526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f805f6122c0610925565b506001600160701b0380831687528116602087015287151560408701526060860187905290925090508561230757806001600160701b0316826001600160701b031661231c565b816001600160701b0316816001600160701b03165b60a0860152608080860191909152600554604080516301e5eb1d60e41b815290515f938493849384936001600160a01b0390921692631e5eb1d0926004808401938290030181865afa158015612374573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123989190612add565b60e08c018390526101008c018290526101208c01819052929650909450925090506001600160a01b0384166123d657505f9550611d74945050505050565b600654600754604051631d6807cf60e01b81526001600160a01b03928316600482015290821660248201525f91829190871690631d6807cf906044016040805180830381865afa15801561242c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124509190612b19565b915091508161246a57505f9750611d749650505050505050565b60c08a0181905261249061248a6001600160701b03808b16908a1661215f565b8261217d565b6101408b01525060019750505050505050509250929050565b5f806124b7836127106129a2565b6124c190876129fa565b9050806124d0866127106129fa565b6124da9190612a6f565b6124e485836129fa565b6124ee9190612a5c565b9695505050505050565b60e08101515f90815b600381101561253857612522846060015185608001518660a00151856124a9565b925061252e848461258c565b9150600101612501565b50612551836060015184608001518560a00151846124a9565b91505f61255e848461258c565b90508181111561258657809150612583846060015185608001518660a00151856124a9565b92505b50915091565b5f806125af8460400151855f015186602001518760600151878960c001516125d1565b9050610a55846101400151828660e001518761010001518861012001516121c6565b5f805f8815612609576125ed866001600160701b038a16612a6f565b9150612602856001600160701b0389166129a2565b9050612634565b61261c856001600160701b038a166129a2565b9150612631866001600160701b038916612a6f565b90505b612647612641838361215f565b8561217d565b9998505050505050505050565b6001600160a01b0381168114612668575f80fd5b50565b5f805f805f6080868803121561267f575f80fd5b8535945060208601359350604086013561269881612654565b9250606086013567ffffffffffffffff808211156126b4575f80fd5b818801915088601f8301126126c7575f80fd5b8135818111156126d5575f80fd5b8960208285010111156126e6575f80fd5b9699959850939650602001949392505050565b5f5b838110156127135781810151838201526020016126fb565b50505f910152565b602081525f82518060208401526127398160408501602087016126f9565b601f01601f19169190910160400192915050565b5f806040838503121561275e575f80fd5b823561276981612654565b946020939093013593505050565b5f805f60608486031215612789575f80fd5b833561279481612654565b925060208401356127a481612654565b929592945050506040919091013590565b5f80604083850312156127c6575f80fd5b82356127d181612654565b915060208301356127e181612654565b809150509250929050565b5f602082840312156127fc575f80fd5b81356120d881612654565b5f805f805f805f60e0888a03121561281d575f80fd5b873561282881612654565b9650602088013561283881612654565b95506040880135945060608801359350608088013560ff8116811461285b575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b60208082526012908201527113595b99195b14ddd85c0e881313d0d2d15160721b604082015260600190565b60208082526026908201527f4d656e64656c537761703a20494e53554646494349454e545f4f55545055545f604082015265105353d5539560d21b606082015260800190565b60208082526022908201527f4d656e64656c537761703a20494e53554646494349454e545f4c495155494449604082015261545960f01b606082015260800190565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b5f60208284031215612987575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561095f5761095f61298e565b60208082526025908201527f4d656e64656c537761703a20494e53554646494349454e545f494e5055545f416040820152641353d5539560da1b606082015260800190565b808202811582820484141761095f5761095f61298e565b60208082526019908201527f4d656e64656c537761703a20494e56414c49445f544f4b454e00000000000000604082015260600190565b634e487b7160e01b5f52601260045260245ffd5b5f82612a6a57612a6a612a48565b500490565b8082018082111561095f5761095f61298e565b5f60018201612a9357612a9361298e565b5060010190565b5f8251612aab8184602087016126f9565b9190910192915050565b8051801515811461203d575f80fd5b5f60208284031215612ad4575f80fd5b6120d882612ab5565b5f805f8060808587031215612af0575f80fd5b8451612afb81612654565b60208601516040870151606090970151919890975090945092505050565b5f8060408385031215612b2a575f80fd5b612b3383612ab5565b9150602083015190509250929050565b5f82612b5157612b51612a48565b500690565b5f60208284031215612b66575f80fd5b81516120d881612654565b6001600160e01b03828116828216818102831692918115828504821417612b9a57612b9a61298e565b50505092915050565b5f6001600160e01b0383811680612bbc57612bbc612a48565b9216919091049291505056fea264697066735822122035964f3ccb1f7d04ef9d43d699bc3a16a5deb0d567653d28590751c1261d353a64736f6c63430008180033a26469706673582212209efd611d25f9518e00836c5cdcc1dc632a462f097aac92963618814b5d8fce5364736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x5baa5b…cbd01b | 23 days agoSat, 25 Jul 2026 21:48:59 UTC | 0x3f3268…d0aa | [0] 0x000000000000…5493f1a6 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x19ea14…7e34ed | setFeeToSetter | 19,345,094 | 23 days agoSat, 25 Jul 2026 21:49:05 UTC | 0x2010…a146 | IN | MendelSwapFactory | $0.000 ETH | 0.00000196 | |
| 0x22056b…73441b | setFeeTo | 19,345,054 | 23 days agoSat, 25 Jul 2026 21:49:01 UTC | 0x2010…a146 | IN | MendelSwapFactory | $0.000 ETH | 0.00000332 | |
| 0x5baa5b…cbd01b | setOracle | 19,345,034 | 23 days agoSat, 25 Jul 2026 21:48:59 UTC | 0x2010…a146 | IN | MendelSwapFactory | $0.000 ETH | 0.00000341 |