Contract 0x02150e97271fdc0d6e3a16d9094a0948266f07dd 14

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa4d343fa2efb75024f8d309174f54b65d5c6842a6c4d2ce628cb0c1b6b1c4b65Approve1954608662024-03-29 14:19:209 mins ago0x2294beb792a87584387a5c709909e17580feab24 IN  Hamachi Finance: HAMI Token0 ETH0.00000179 0.01
0xef0307470247004fd659a0426d13f32f8a9669d8a7674f5ef5c6f1d9b21226f7Transfer1953968382024-03-29 9:52:154 hrs 37 mins ago0x8946187dde16fc026b00066113fb913c94fac6b2 IN  Hamachi Finance: HAMI Token0 ETH0.000005020.01
0xbb4c72a4797e684e991d51b1135c232ec881f25401d61157e98b40c260fafaacClaim Rewards1951530492024-03-28 16:48:1621 hrs 41 mins ago0x0557660ca12280707955012199dcd9a44e33adcd IN  Hamachi Finance: HAMI Token0 ETH0.00000834 0.01
0x3588c7cd04d228dea458eec09db62665b4dad046d9de3fc32b0639f5938a3e6bApprove1951042792024-03-28 13:23:531 day 1 hr ago0x2546b67d2485b0b5740a7b388111aef96d8e8933 IN  Hamachi Finance: HAMI Token0 ETH0.00000249 0.01
0x6a884667de233a05c448cd5ed0dffcbddd14ff37884da783b406d52c2a8f50b3Claim Rewards1948699242024-03-27 21:04:001 day 17 hrs ago0xfa9d9208627ea8c35215f7df409bf1f5110d2486 IN  Hamachi Finance: HAMI Token0 ETH0.000004020.01
0x2d80534bc6b341ce6228a0f644819960bea3302f639aeb1bc87caa1688ebba24Claim Rewards1948395032024-03-27 18:56:481 day 19 hrs ago0xa7bc7e0f4650e69e830ffaf2e42214095164f2b6 IN  Hamachi Finance: HAMI Token0 ETH0.00000991 0.011277
0x7cde3939411a569c30112c261921b664dfea451cfd272cfdfcc8a317ed3e7441Claim Rewards1948346242024-03-27 18:36:221 day 19 hrs ago0xc2a145b5ed20c5e917889ad3993e7974af38e255 IN  Hamachi Finance: HAMI Token0 ETH0.000019750.01
0x1fc8cca8152d026b989b7d54ad8541c9094e20dead5801adc2707a3ed03dfc3aProcess Fees1948337132024-03-27 18:32:341 day 19 hrs ago0x78b0d8d53b923ff5d20e7a2ce22616b02ba9087a IN  Hamachi Finance: HAMI Token0 ETH0.00001839 0.01
0x036ad68ad5e62a0b4d432f7f36c0ac9fd9acaa4284ff9e6aee15d51d5a2c8eb7Transfer1948264202024-03-27 18:02:081 day 20 hrs ago0x926dc482c7221e734cfb1158edc0c692bc80ae95 IN  Hamachi Finance: HAMI Token0 ETH0.00001895 0.01
0xc96a83e974c92524fbb676057f83bc5273855be8024acf532fb256f15d0eba92Process Fees1947838262024-03-27 15:03:531 day 23 hrs ago0x78b0d8d53b923ff5d20e7a2ce22616b02ba9087a IN  Hamachi Finance: HAMI Token0 ETH0.00000586 0.017053
0x3506b363ad02060981767903b25ca66e159dc9ca1df4063d86af76c5ea21ed57Approve1947774462024-03-27 14:37:051 day 23 hrs ago0x4838036f414762d2c77de1684a3d1c872b3a66ee IN  Hamachi Finance: HAMI Token0 ETH0.0000081 0.117468
0x90e9f3e0f9f3061ecd0d0f1c9ff961a621f8c3169c32945a2adf740d7af21f99Approve1947631712024-03-27 13:36:562 days 52 mins ago0x00b94abd3bcb7430289916552da2238fec0f7dcb IN  Hamachi Finance: HAMI Token0 ETH0.00000447 0.052406
0x6bff413d409058d09c1e3f0eabe919210c518e049446e88298375dc5e19315f3Claim Rewards1947477512024-03-27 12:32:272 days 1 hr ago0x78ef8b1c73d0a4c63b7e9825d6b29d2b2a82b3dc IN  Hamachi Finance: HAMI Token0 ETH0.00000347 0.01
0x86809146a2d9f5618d6ad655d7d1adbf536ef357f75ac5ccf82bc8685e88c6a7Claim Rewards1946533122024-03-27 5:58:132 days 8 hrs ago0xc5c7c82d74a8195200087d2c4c507df16876d9ca IN  Hamachi Finance: HAMI Token0 ETH0.00000296 0.01
0xa58e6c8ad52aa0ac8c2e3b384dca5b8f052897b4b58361455714244102f381c2Approve1946151692024-03-27 3:18:562 days 11 hrs ago0xdf36a05bc6245948014baef1d1daed867b588bd8 IN  Hamachi Finance: HAMI Token0 ETH0.00000129 0.01
0xa8aef9bbad796ac5719a96816cebe2dd439cec1f38f353b786693c132d3f5f93Transfer1944823212024-03-26 18:03:492 days 20 hrs ago0x926dc482c7221e734cfb1158edc0c692bc80ae95 IN  Hamachi Finance: HAMI Token0 ETH0.00000268 0.01
0x48983c5c561c9ca30ddb4c5ceee6743a9b63cb16ab13c3e1ee7586e19155e601Approve1944697772024-03-26 17:11:322 days 21 hrs ago0x0208415a25fd45abf04ab849b688a622bbd1c039 IN  Hamachi Finance: HAMI Token0 ETH0.000002620.01
0x9778b84bf998b026c860b80e6db102ae7904679966d2bc5099293331b1c3cb4fApprove1943014832024-03-26 5:29:433 days 8 hrs ago0x954668a62700e69a02a4be88195a12a11ce81556 IN  Hamachi Finance: HAMI Token0 ETH0.000000970.01
0xfe55a3a866c384bb2b81f2172e801f2ef8223742a7d493aa95ad45f04769510cClaim Rewards1942819792024-03-26 4:08:073 days 10 hrs ago0xecaa805706481077006bce8796d2334fd1363681 IN  Hamachi Finance: HAMI Token0 ETH0.00000236 0.01
0xd017e8c7eef01da11b60cac540ec10460be7214109492b32e3ed30d49567f959Approve1942079732024-03-25 22:59:533 days 15 hrs ago0x2294beb792a87584387a5c709909e17580feab24 IN  Hamachi Finance: HAMI Token0 ETH0.00000142 0.01
0x9fd96b35f58d3033aace63ed3ee64412ea8d0996c0e093110dd7994afbcf7420Process Fees1941779762024-03-25 20:54:483 days 17 hrs ago0x78b0d8d53b923ff5d20e7a2ce22616b02ba9087a IN  Hamachi Finance: HAMI Token0 ETH0.00000389 0.01
0xf800c124950eb95c3417763c9fa344f0a9d421b39c6c3f6c8ac0f799c82e796bApprove1941521832024-03-25 19:07:133 days 19 hrs ago0xe89150ded8556305e7bd6fd5acbf76af6d974c04 IN  Hamachi Finance: HAMI Token0 ETH0.00000151 0.01
0x139d4297879403742faac2a7e3b47a5ff8c322cb9741243fd617245a9012e492Claim Rewards1941516282024-03-25 19:04:543 days 19 hrs ago0xe89150ded8556305e7bd6fd5acbf76af6d974c04 IN  Hamachi Finance: HAMI Token0 ETH0.00000347 0.01
0x44acaaf3d1791678f9ba0e78e5cbda7fefdbc6f0e72c626216b5edf3d34a7c2cSet Manual Claim1941515102024-03-25 19:04:243 days 19 hrs ago0xe89150ded8556305e7bd6fd5acbf76af6d974c04 IN  Hamachi Finance: HAMI Token0 ETH0.00000108 0.01
0xd6c70660a7e1c3022ba3bac740b39c948e667217fcd4f55bc55a035c69fd5cc5Claim Rewards1941292182024-03-25 17:31:273 days 20 hrs ago0xba05ac14596b221bd79461939b58de8d04fb7ed1 IN  Hamachi Finance: HAMI Token0 ETH0.000005730.019912
[ Download CSV Export 

OVERVIEW

Hamachi Finance is a multi-currency and multi-chain reward token. By buying and holding $HAMI you are farming rewards and accumulating tokens supported by the Hamachi Finance protocol.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000583157387716155 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000042067263625557 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000026354228889694 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000003777690141042 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000000706201444375 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.00005324422282399 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.0000324517069437 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000017913532919855 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000049219114573275 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000031777764995354 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000001131777823308 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000004711027288134 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.00000149832627074 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000021559429347473 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000001352833868792 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000560186517788031 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000002169630728135 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.00003456496895385 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000922494059422795 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000183479572646877 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000001174406244112 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000339324928674037 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000036761799406389 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.000020143713864072 ETH
0xdb557cac9115cfd3fca38c6000535dcb20deb0bce1290089e04d069c696519c01954608992024-03-29 14:19:289 mins ago Hamachi Finance: HAMI Token Uniswap V3: Router0.00003456147051233 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xFF12afb3841b737289d1b02dfedbe4c85a8EC6E6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Diamond

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 99999 runs

Other Settings:
default evmVersion
File 1 of 10 : IERC20Upgradeable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)

pragma solidity ^0.8.0;

import "../token/ERC20/IERC20Upgradeable.sol";

File 2 of 10 : IERC20Upgradeable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20Upgradeable {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 3 of 10 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 4 of 10 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 5 of 10 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

File 6 of 10 : Diamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

import "./libraries/LibDiamond.sol";
import {DiamondCutAndLoupeFacet} from "./facets/DiamondCutAndLoupeFacet.sol";
import {IERC173} from "./interfaces/IERC173.sol";
import {IERC165} from "./interfaces/IERC165.sol";
import {IERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/interfaces/IERC20Upgradeable.sol";
import {IUniswapV2Router02} from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
import {IUniswapV2Factory} from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";

// When no function exists for function called
error FunctionNotFound(string msg_);

contract Diamond {
    constructor(
        address liquidityWallet,
        address defaultRouter,
        address defaultPair,
        address diamondCutAndLoupeFacetAddress,
        address methodsExposureFacetAddress
    ) payable {
        LibDiamond.setContractOwner(msg.sender);
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        LibDiamond.RewardStorage storage rs = LibDiamond.rewardStorage();

        ds.fee.liquidityBuyFee = 100;
        ds.fee.rewardBuyFee = 600;

        ds.fee.liquiditySellFee = 100;
        ds.fee.rewardSellFee = 600;

        ds.numTokensToSwap = 5_000_000 * 10**18;
        ds.maxTokenPerWallet = 250_000_000 * 10**18; // Max holding limit, 0.5% of supply
        ds.defaultRouter = defaultRouter;
        ds.swapRouters[defaultRouter] = true;

        ds.processingGas = 750_000;
        ds.processingFees = false;

        rs.minRewardBalance = 1000 * 10**18;
        rs.claimTimeout = 3600;

        ds.liquidityWallet = liquidityWallet;

        ds.methodsExposureFacetAddress = methodsExposureFacetAddress;

        rs.rewardToken.token = address(this); // hamachi
        rs.rewardToken.router = defaultRouter; // sushi
        rs.rewardToken.path = [defaultPair, address(this)];

        rs.goHam.token = address(this); // hamachi
        rs.goHam.router = defaultRouter; // sushi
        rs.goHam.path = [defaultPair, address(this)];

        ds.supportedInterfaces[type(IDiamondCut).interfaceId] = true;
        ds.supportedInterfaces[type(IDiamondLoupe).interfaceId] = true;
        ds.supportedInterfaces[type(IERC173).interfaceId] = true;
        ds.supportedInterfaces[type(IERC165).interfaceId] = true;
        ds.supportedInterfaces[type(IERC20Upgradeable).interfaceId] = true;

        bytes4[] memory selectors = new bytes4[](6);
        selectors[0] = DiamondCutAndLoupeFacet.diamondCut.selector;
        selectors[1] = DiamondCutAndLoupeFacet.facets.selector;
        selectors[2] = DiamondCutAndLoupeFacet.facetFunctionSelectors.selector;
        selectors[3] = DiamondCutAndLoupeFacet.facetAddresses.selector;
        selectors[4] = DiamondCutAndLoupeFacet.facetAddress.selector;
        selectors[5] = DiamondCutAndLoupeFacet.supportsInterface.selector;

        IUniswapV2Router02 router = IUniswapV2Router02(defaultRouter);
        address swapPair = IUniswapV2Factory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        ds.lpPools[address(swapPair)] = true;

        LibDiamond.addFunctions(diamondCutAndLoupeFacetAddress, selectors);
    }

    function implementation() public view returns (address) {
        LibDiamond.DiamondStorage storage _ds = LibDiamond.diamondStorage();
        return _ds.methodsExposureFacetAddress;
    }

    // =========== Lifecycle ===========

    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    // To learn more about this implementation read EIP 2535
    fallback() external payable {
        address facet = LibDiamond
            .diamondStorage()
            .selectorToFacetAndPosition[msg.sig]
            .facetAddress;
        if (facet == address(0)) revert FunctionNotFound("Diamond: Function does not exist");
        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    receive() external payable {}
}

File 7 of 10 : DiamondCutAndLoupeFacet.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

import "../libraries/LibDiamond.sol";
import {IERC165} from "../interfaces/IERC165.sol";

contract DiamondCutAndLoupeFacet is IDiamondCut, IDiamondLoupe, IERC165 {

    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _diamondCut Contains the facet addresses and function selectors
    /// @param _init The address of the contract or facet to execute _calldata
    /// @param _calldata A function call, including function selector and arguments
    ///                  _calldata is executed with delegatecall on _init
    function diamondCut(
        IDiamondCut.FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external {
        LibDiamond.enforceIsContractOwner();
        LibDiamond.diamondCut(_diamondCut, _init, _calldata);
    }

    /// These functions are expected to be called frequently by tools.

    /// @notice Gets all facets and their selectors.
    /// @return facets_ Facet
    function facets() external override view returns (Facet[] memory facets_) {
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        uint256 numFacets = ds.facetAddresses.length;
        facets_ = new Facet[](numFacets);
        for (uint256 i; i < numFacets; i++) {
            address facetAddress_ = ds.facetAddresses[i];
            facets_[i].facetAddress = facetAddress_;
            facets_[i].functionSelectors = ds.facetFunctionSelectors[facetAddress_].functionSelectors;
        }
    }

    /// @notice Gets all the function selectors provided by a facet.
    /// @param _facet The facet address.
    /// @return facetFunctionSelectors_
    function facetFunctionSelectors(address _facet) external override view returns (bytes4[] memory facetFunctionSelectors_) {
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        facetFunctionSelectors_ = ds.facetFunctionSelectors[_facet].functionSelectors;
    }

    /// @notice Get all the facet addresses used by a diamond.
    /// @return facetAddresses_
    function facetAddresses() external override view returns (address[] memory facetAddresses_) {
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        facetAddresses_ = ds.facetAddresses;
    }

    /// @notice Gets the facet that supports the given selector.
    /// @dev If facet is not found return address(0).
    /// @param _functionSelector The function selector.
    /// @return facetAddress_ The facet address.
    function facetAddress(bytes4 _functionSelector) external override view returns (address facetAddress_) {
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        facetAddress_ = ds.selectorToFacetAndPosition[_functionSelector].facetAddress;
    }

    // This implements ERC-165.
    function supportsInterface(bytes4 _interfaceId) external override view returns (bool) {
        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();
        return ds.supportedInterfaces[_interfaceId];
    }
}

File 8 of 10 : IERC165.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC165 {
    /// @notice Query if a contract implements an interface
    /// @param interfaceId The interface identifier, as specified in ERC-165
    /// @dev Interface identification is specified in ERC-165. This function
    ///  uses less than 30,000 gas.
    /// @return `true` if the contract implements `interfaceID` and
    ///  `interfaceID` is not 0xffffffff, `false` otherwise
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 9 of 10 : IERC173.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title ERC-173 Contract Ownership Standard
///  Note: the ERC-165 identifier for this interface is 0x7f5828d0
/* is ERC165 */
interface IERC173 {
    /// @dev This emits when ownership of a contract changes.
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice Get the address of the owner
    /// @return owner_ The address of the owner.
    function owner() external view returns (address owner_);

    /// @notice Set the address of the new owner of the contract
    /// @dev Set _newOwner to address(0) to renounce any ownership.
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
}

File 10 of 10 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IDiamondCut {
    enum FacetCutAction {
        Add,
        Replace,
        Remove
    }
    // Add=0, Replace=1, Remove=2

    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }

    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _diamondCut Contains the facet addresses and function selectors
    /// @param _init The address of the contract or facet to execute _calldata
    /// @param _calldata A function call, including function selector and arguments
    ///                  _calldata is executed with delegatecall on _init
    function diamondCut(
        FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external;

    event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
}

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

// A loupe is a small magnifying glass used to look at diamonds.
// These functions look at diamonds
interface IDiamondLoupe {
    /// These functions are expected to be called frequently
    /// by tools.

    struct Facet {
        address facetAddress;
        bytes4[] functionSelectors;
    }

    /// @notice Gets all facet addresses and their four byte function selectors.
    /// @return facets_ Facet
    function facets() external view returns (Facet[] memory facets_);

    /// @notice Gets all the function selectors supported by a specific facet.
    /// @param _facet The facet address.
    /// @return facetFunctionSelectors_
    function facetFunctionSelectors(address _facet)
        external
        view
        returns (bytes4[] memory facetFunctionSelectors_);

    /// @notice Get all the facet addresses used by a diamond.
    /// @return facetAddresses_
    function facetAddresses()
        external
        view
        returns (address[] memory facetAddresses_);

    /// @notice Gets the facet that supports the given selector.
    /// @dev If facet is not found return address(0).
    /// @param _functionSelector The function selector.
    /// @return facetAddress_ The facet address.
    function facetAddress(bytes4 _functionSelector)
        external
        view
        returns (address facetAddress_);
}

library LibDiamond {
    bytes32 constant DIAMOND_STORAGE_POSITION =
        keccak256("diamond.standard.diamond.storage");
    bytes32 constant REWARD_STORAGE_POSITION =
        keccak256("diamond.standard.reward.storage");
    address public constant BURN_ADDRESS =
        0x000000000000000000000000000000000000dEaD;

    bytes32 public constant VESTING_ROLE = keccak256("VESTING_ROLE");
    bytes32 public constant EXCLUDED_FROM_FEE_ROLE =
        keccak256("EXCLUDED_FROM_FEE_ROLE");
    bytes32 public constant EXCLUDED_FROM_MAX_WALLET_ROLE =
        keccak256("EXCLUDED_FROM_MAX_WALLET_ROLE");
    bytes32 public constant EXCLUDED_FROM_REWARD_ROLE =
        keccak256("EXCLUDED_FROM_REWARD_ROLE");

    uint256 internal constant MAGNITUDE = 2**128;

    uint32 public constant PERCENTAGE_DENOMINATOR = 10000;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    event DiamondCut(
        IDiamondCut.FacetCut[] _diamondCut,
        address _init,
        bytes _calldata
    );

    struct FacetAddressAndPosition {
        address facetAddress;
        uint16 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array
    }

    struct FacetFunctionSelectors {
        bytes4[] functionSelectors;
        uint16 facetAddressPosition; // position of facetAddress in facetAddresses array
    }

    struct DiamondStorage {
        // maps function selector to the facet address and
        // the position of the selector in the facetFunctionSelectors.selectors array
        mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;
        // maps facet addresses to function selectors
        mapping(address => FacetFunctionSelectors) facetFunctionSelectors;
        // facet addresses
        address[] facetAddresses;
        // Used to query if a contract implements an interface.
        // Used to implement ERC-165.
        mapping(bytes4 => bool) supportedInterfaces;
        address contractOwner;
        string name;
        string symbol;
        address methodsExposureFacetAddress;
        address liquidityWallet;
        address defaultRouter;
        uint256 numTokensToSwap;
        uint256 maxTokenPerWallet;
        mapping(address => bool) lpPools;
        mapping(address => bool) swapRouters;
        uint32 processingGas;
        bool processingFees;
        Fee fee;
    }

    function diamondStorage()
        internal
        pure
        returns (DiamondStorage storage ds)
    {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }

    // ----- REWARD ----- //

    struct Fee {
        uint32 liquidityBuyFee;
        uint32 rewardBuyFee;
        uint32 liquiditySellFee;
        uint32 rewardSellFee;
    }

    struct RewardToken {
        address token;
        address router;
        address[] path;
    }

    struct Map {
        address[] keys;
        mapping(address => uint256) values;
        mapping(address => uint256) indexOf;
        mapping(address => bool) inserted;
    }

    struct RewardStorage {
        mapping(address => int256) magnifiedReward;
        mapping(address => uint256) withdrawnReward;
        mapping(address => uint256) claimTimes;
        mapping(address => bool) manualClaim;
        mapping(address => uint256) rewardBalances;
        uint256 totalRewardSupply;
        RewardToken rewardToken;
        RewardToken goHam;
        Map rewardHolders;
        uint256 magnifiedRewardPerShare;
        uint256 minRewardBalance;
        uint256 totalAccruedReward;
        uint256 lastProcessedIndex;
        uint32 claimTimeout;
    }

    function rewardStorage() internal pure returns (RewardStorage storage rs) {
        bytes32 position = REWARD_STORAGE_POSITION;
        assembly {
            rs.slot := position
        }
    }

    function setContractOwner(address _newOwner) internal {
        DiamondStorage storage ds = diamondStorage();
        address previousOwner = ds.contractOwner;
        ds.contractOwner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }

    function contractOwner() internal view returns (address contractOwner_) {
        contractOwner_ = diamondStorage().contractOwner;
    }

    function enforceIsContractOwner() internal view {
        require(
            msg.sender == diamondStorage().contractOwner,
            "LibDiamond: Must be contract owner"
        );
    }

    // Internal function version of diamondCut
    function diamondCut(
        IDiamondCut.FacetCut[] memory _diamondCut,
        address _init,
        bytes memory _calldata
    ) internal {
        for (
            uint256 facetIndex;
            facetIndex < _diamondCut.length;
            facetIndex++
        ) {
            IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;
            if (action == IDiamondCut.FacetCutAction.Add) {
                addFunctions(
                    _diamondCut[facetIndex].facetAddress,
                    _diamondCut[facetIndex].functionSelectors
                );
            } else if (action == IDiamondCut.FacetCutAction.Replace) {
                replaceFunctions(
                    _diamondCut[facetIndex].facetAddress,
                    _diamondCut[facetIndex].functionSelectors
                );
            } else if (action == IDiamondCut.FacetCutAction.Remove) {
                removeFunctions(
                    _diamondCut[facetIndex].facetAddress,
                    _diamondCut[facetIndex].functionSelectors
                );
            } else {
                revert("LibDiamondCut: Incorrect FacetCutAction");
            }
        }
        emit DiamondCut(_diamondCut, _init, _calldata);
        initializeDiamondCut(_init, _calldata);
    }

    function addFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        require(
            _functionSelectors.length > 0,
            "LibDiamondCut: No selectors in facet to cut"
        );
        DiamondStorage storage ds = diamondStorage();
        require(
            _facetAddress != address(0),
            "LibDiamondCut: Add facet can't be address(0)"
        );
        uint16 selectorPosition = uint16(
            ds.facetFunctionSelectors[_facetAddress].functionSelectors.length
        );
        // add new facet address if it does not exist
        if (selectorPosition == 0) {
            enforceHasContractCode(
                _facetAddress,
                "LibDiamondCut: New facet has no code"
            );
            ds
                .facetFunctionSelectors[_facetAddress]
                .facetAddressPosition = uint16(ds.facetAddresses.length);
            ds.facetAddresses.push(_facetAddress);
        }
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds
                .selectorToFacetAndPosition[selector]
                .facetAddress;
            require(
                oldFacetAddress == address(0),
                "LibDiamondCut: Can't add function that already exists"
            );
            ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(
                selector
            );
            ds
                .selectorToFacetAndPosition[selector]
                .facetAddress = _facetAddress;
            ds
                .selectorToFacetAndPosition[selector]
                .functionSelectorPosition = selectorPosition;
            selectorPosition++;
        }
    }

    function replaceFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        require(
            _functionSelectors.length > 0,
            "LibDiamondCut: No selectors in facet to cut"
        );
        DiamondStorage storage ds = diamondStorage();
        require(
            _facetAddress != address(0),
            "LibDiamondCut: Add facet can't be address(0)"
        );
        uint16 selectorPosition = uint16(
            ds.facetFunctionSelectors[_facetAddress].functionSelectors.length
        );
        // add new facet address if it does not exist
        if (selectorPosition == 0) {
            enforceHasContractCode(
                _facetAddress,
                "LibDiamondCut: New facet has no code"
            );
            ds
                .facetFunctionSelectors[_facetAddress]
                .facetAddressPosition = uint16(ds.facetAddresses.length);
            ds.facetAddresses.push(_facetAddress);
        }
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds
                .selectorToFacetAndPosition[selector]
                .facetAddress;
            require(
                oldFacetAddress != _facetAddress,
                "LibDiamondCut: Can't replace function with same function"
            );
            removeFunction(oldFacetAddress, selector);
            // add function
            ds
                .selectorToFacetAndPosition[selector]
                .functionSelectorPosition = selectorPosition;
            ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(
                selector
            );
            ds
                .selectorToFacetAndPosition[selector]
                .facetAddress = _facetAddress;
            selectorPosition++;
        }
    }

    function removeFunctions(
        address _facetAddress,
        bytes4[] memory _functionSelectors
    ) internal {
        require(
            _functionSelectors.length > 0,
            "LibDiamondCut: No selectors in facet to cut"
        );
        DiamondStorage storage ds = diamondStorage();
        // if function does not exist then do nothing and return
        require(
            _facetAddress == address(0),
            "LibDiamondCut: Remove facet address must be address(0)"
        );
        for (
            uint256 selectorIndex;
            selectorIndex < _functionSelectors.length;
            selectorIndex++
        ) {
            bytes4 selector = _functionSelectors[selectorIndex];
            address oldFacetAddress = ds
                .selectorToFacetAndPosition[selector]
                .facetAddress;
            removeFunction(oldFacetAddress, selector);
        }
    }

    function removeFunction(address _facetAddress, bytes4 _selector) internal {
        DiamondStorage storage ds = diamondStorage();
        require(
            _facetAddress != address(0),
            "LibDiamondCut: Can't remove function that doesn't exist"
        );
        // an immutable function is a function defined directly in a diamond
        require(
            _facetAddress != address(this),
            "LibDiamondCut: Can't remove immutable function"
        );
        // replace selector with last selector, then delete last selector
        uint256 selectorPosition = ds
            .selectorToFacetAndPosition[_selector]
            .functionSelectorPosition;
        uint256 lastSelectorPosition = ds
            .facetFunctionSelectors[_facetAddress]
            .functionSelectors
            .length - 1;
        // if not the same then replace _selector with lastSelector
        if (selectorPosition != lastSelectorPosition) {
            bytes4 lastSelector = ds
                .facetFunctionSelectors[_facetAddress]
                .functionSelectors[lastSelectorPosition];
            ds.facetFunctionSelectors[_facetAddress].functionSelectors[
                    selectorPosition
                ] = lastSelector;
            ds
                .selectorToFacetAndPosition[lastSelector]
                .functionSelectorPosition = uint16(selectorPosition);
        }
        // delete the last selector
        ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop();
        delete ds.selectorToFacetAndPosition[_selector];

        // if no more selectors for facet address then delete the facet address
        if (lastSelectorPosition == 0) {
            // replace facet address with last facet address and delete last facet address
            uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1;
            uint256 facetAddressPosition = ds
                .facetFunctionSelectors[_facetAddress]
                .facetAddressPosition;
            if (facetAddressPosition != lastFacetAddressPosition) {
                address lastFacetAddress = ds.facetAddresses[
                    lastFacetAddressPosition
                ];
                ds.facetAddresses[facetAddressPosition] = lastFacetAddress;
                ds
                    .facetFunctionSelectors[lastFacetAddress]
                    .facetAddressPosition = uint16(facetAddressPosition);
            }
            ds.facetAddresses.pop();
            delete ds
                .facetFunctionSelectors[_facetAddress]
                .facetAddressPosition;
        }
    }

    function initializeDiamondCut(address _init, bytes memory _calldata)
        internal
    {
        if (_init == address(0)) {
            require(
                _calldata.length == 0,
                "LibDiamondCut: _init is address(0) but_calldata is not empty"
            );
        } else {
            require(
                _calldata.length > 0,
                "LibDiamondCut: _calldata is empty but _init is not address(0)"
            );
            if (_init != address(this)) {
                enforceHasContractCode(
                    _init,
                    "LibDiamondCut: _init address has no code"
                );
            }
            (bool success, bytes memory error) = _init.delegatecall(_calldata);
            if (!success) {
                if (error.length > 0) {
                    // bubble up the error
                    revert(string(error));
                } else {
                    revert("LibDiamondCut: _init function reverted");
                }
            }
        }
    }

    function enforceHasContractCode(
        address _contract,
        string memory _errorMessage
    ) internal view {
        uint256 contractSize;
        assembly {
            contractSize := extcodesize(_contract)
        }
        require(contractSize > 0, _errorMessage);
    }
}

contract WithStorage {
    function _ds() internal pure returns (LibDiamond.DiamondStorage storage) {
        return LibDiamond.diamondStorage();
    }

    function _rs() internal pure returns (LibDiamond.RewardStorage storage) {
        return LibDiamond.rewardStorage();
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 99999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"},{"internalType":"address","name":"defaultRouter","type":"address"},{"internalType":"address","name":"defaultPair","type":"address"},{"internalType":"address","name":"diamondCutAndLoupeFacetAddress","type":"address"},{"internalType":"address","name":"methodsExposureFacetAddress","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"string","name":"msg_","type":"string"}],"name":"FunctionNotFound","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100225760003560e01c80635c60da1b1461012057610029565b3661002957005b600080357fffffffff000000000000000000000000000000000000000000000000000000001681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602052604090205473ffffffffffffffffffffffffffffffffffffffff16806100fc576040517f78abfbe600000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460448201526064015b60405180910390fd5b3660008037600080366000845af43d6000803e80801561011b573d6000f35b3d6000fd5b34801561012c57600080fd5b507fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c1323546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff8481169182179093556040517fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7fc010bdbeeef1a2517c576626b4bbeedc112699ecca01d6945ec6ca7b56c5137390565b600081511161030b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201527f6163657420746f2063757400000000000000000000000000000000000000000060648201526084016100f3565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83166103cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201527f652061646472657373283029000000000000000000000000000000000000000060648201526084016100f3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001820160205260408120549061ffff821690036104c35761042584604051806060016040528060248152602001610831602491396106c5565b60028201805473ffffffffffffffffffffffffffffffffffffffff861660008181526001808701602090815260408320820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff90961695909517909455845490810185559381529190912090910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b60005b83518110156106be5760008482815181106104e3576104e3610706565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff1680156105c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c726561647920657869737473000000000000000000000060648201526084016100f3565b73ffffffffffffffffffffffffffffffffffffffff871660008181526001878101602090815260408084208054938401815584528184206008840401805463ffffffff60079095166004026101000a948502191660e089901c94909402939093179092557fffffffff0000000000000000000000000000000000000000000000000000000086168352889052902080547fffffffffffffffffffff00000000000000000000000000000000000000000000169091177401000000000000000000000000000000000000000061ffff871602179055836106a681610764565b945050505080806106b690610785565b9150506104c6565b5050505050565b813b8181610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f391906107bd565b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061ffff80831681810361077b5761077b610735565b6001019392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107b6576107b6610735565b5060010190565b600060208083528351808285015260005b818110156107ea578581018301518582016040015282016107ce565b818111156107fc576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fe4c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212207dcb050ba3783e04e07e091b1513bf59912579ee61e067ae79ebade9a7f3f92664736f6c634300080d0033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.