ETH Price: $2,677.51 (-0.67%)

Contract

0x00e82E98a2119Aa175eab206706efE0Df2c7D51D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Convert200299302024-06-06 2:52:59114 days ago1717642379IN
ShibaSwap: Treasure Finder
0 ETH0.0021092310.72363942
Convert200298802024-06-06 2:42:59114 days ago1717641779IN
ShibaSwap: Treasure Finder
0 ETH0.0021026810.70838424
Convert200248052024-06-05 9:43:23115 days ago1717580603IN
ShibaSwap: Treasure Finder
0 ETH0.001913859.97291641
Convert200241342024-06-05 7:28:11115 days ago1717572491IN
ShibaSwap: Treasure Finder
0 ETH0.001777778.98203938
Convert200240582024-06-05 7:12:47115 days ago1717571567IN
ShibaSwap: Treasure Finder
0 ETH0.001572567.5353259
Convert200240222024-06-05 7:05:35115 days ago1717571135IN
ShibaSwap: Treasure Finder
0 ETH0.001767638.49508373
Convert200199272024-06-04 17:23:47116 days ago1717521827IN
ShibaSwap: Treasure Finder
0 ETH0.0033720716.99504994
Convert200196712024-06-04 16:32:23116 days ago1717518743IN
ShibaSwap: Treasure Finder
0 ETH0.0049084325.13048118
Convert Multiple199731852024-05-29 4:38:35122 days ago1716957515IN
ShibaSwap: Treasure Finder
0 ETH0.0117421210
Convert Multiple199731852024-05-29 4:38:35122 days ago1716957515IN
ShibaSwap: Treasure Finder
0 ETH0.0034655810
Convert Multiple199724392024-05-29 2:08:23122 days ago1716948503IN
ShibaSwap: Treasure Finder
0 ETH0.0032389910
Convert Multiple199723212024-05-29 1:44:35122 days ago1716947075IN
ShibaSwap: Treasure Finder
0 ETH0.0036040111.32399278
Convert Multiple199723132024-05-29 1:42:47122 days ago1716946967IN
ShibaSwap: Treasure Finder
0 ETH0.0035468711.23898444
Convert Multiple198587452024-05-13 4:35:59138 days ago1715574959IN
ShibaSwap: Treasure Finder
0 ETH0.001932536
Convert196448782024-04-13 6:30:23168 days ago1712989823IN
ShibaSwap: Treasure Finder
0 ETH0.0021046710.732039
Convert196448332024-04-13 6:21:23168 days ago1712989283IN
ShibaSwap: Treasure Finder
0 ETH0.0022974210.44872037
Convert195529072024-03-31 9:11:11181 days ago1711876271IN
ShibaSwap: Treasure Finder
0 ETH0.0046128323.69904758
Convert Multiple195528482024-03-31 8:59:23181 days ago1711875563IN
ShibaSwap: Treasure Finder
0 ETH0.0071947322.51422951
Convert Multiple195219112024-03-26 23:41:23186 days ago1711496483IN
ShibaSwap: Treasure Finder
0 ETH0.0113484935.46316032
Convert Multiple195219112024-03-26 23:41:23186 days ago1711496483IN
ShibaSwap: Treasure Finder
0 ETH0.0407434135.46316032
Convert189441062024-01-05 22:43:59267 days ago1704494639IN
ShibaSwap: Treasure Finder
0 ETH0.0035095117.84851518
Convert189441062024-01-05 22:43:59267 days ago1704494639IN
ShibaSwap: Treasure Finder
0 ETH0.0035110717.84851518
Convert188971092023-12-30 8:19:47273 days ago1703924387IN
ShibaSwap: Treasure Finder
0 ETH0.0039728820
Convert188971092023-12-30 8:19:47273 days ago1703924387IN
ShibaSwap: Treasure Finder
0 ETH0.0039728820
Convert186962722023-12-02 4:16:35301 days ago1701490595IN
ShibaSwap: Treasure Finder
0 ETH0.0093894225
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TreasureFinder

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 5000 runs

Other Settings:
default evmVersion
File 1 of 8 : TreasureFinder.sol
// SPDX-License-Identifier: MIT
// P1 - P3: OK
pragma solidity 0.6.12;
import "./libraries/BoringMath.sol";
import "./libraries/BoringERC20.sol";

import "./uniswapv2/interfaces/IUniswapV2ERC20.sol";
import "./uniswapv2/interfaces/IUniswapV2Pair.sol";
import "./uniswapv2/interfaces/IUniswapV2Factory.sol";

import "./BoringOwnable.sol";

// TreasureFinder is TopDog's left hand and kinda a wizard. He can cook up Bone from pretty much anything!
// This contract handles "serving up" rewards for xShib, xLeash, tBone holders by trading tokens collected from fees into the corresponding form.

// T1 - T4: OK
contract TreasureFinder is BoringOwnable {
    using BoringMath for uint256;
    using BoringERC20 for IERC20;

    // V1 - V5: OK
    IUniswapV2Factory public immutable factory;
    //0xabcd...
    // V1 - V5: OK
    address public immutable buryBone;
    //0xabcd..
    // V1 - V5: OK
    address public immutable buryLeash;
    //0xabcd..
    // V1 - V5: OK
    address public immutable buryShib;
    //0xabcd..
    // V1 - V5: OK
    address private immutable bone;
    //0xabcd...
    // V1 - V5: OK
    address private immutable shib;
    //0xabcd...
    // V1 - V5: OK
    address private immutable leash;
    //0xabcd...
    // V1 - V5: OK
    address private immutable weth;
    //0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

    address public topCoinDestination;

    // V1 - V5: OK
    mapping(address => address) internal _bridges;

    // E1: OK
    event LogBridgeSet(address indexed token, address indexed bridge);
    // E1: OK
    event LogConvert(
        address indexed server,
        address indexed token0,
        address indexed token1,
        uint256 amount0,
        uint256 amount1,
        uint256 amountBONE
    );
    event TopCoinDestination(address indexed user, address indexed destination);

    constructor (
        address _factory,
        address _swapRewardDistributor,
        address _buryBone,
        address _buryLeash,
        address _buryShib,
        address _bone,
        address _shib,
        address _leash,
        address _weth
    ) public {
        require(address(_factory) != address(0), "_factory is a zero address");
        require(address(_bone) != address(0), "_bone is a zero address");
        require(address(_shib) != address(0), "_shib is a zero address");
        require(address(_leash) != address(0), "_leash is a zero address");
        require(address(_weth) != address(0), "_weth is a zero address");
        factory = IUniswapV2Factory(_factory);
        buryBone = _buryBone;
        buryLeash = _buryLeash;
        buryShib = _buryShib;
        bone = _bone;
        shib = _shib;
        leash = _leash;
        weth = _weth;
        topCoinDestination = _swapRewardDistributor;
    }

    // F1 - F10: OK
    // C1 - C24: OK
    function bridgeFor(address token) public view returns (address bridge) {
        bridge = _bridges[token];
        if (bridge == address(0)) {
            bridge = weth;
        }
    }

    // F1 - F10: OK
    // C1 - C24: OK
    function setBridge(address token, address bridge) external onlyOwner {
        // Checks
        require(
            token != bone && token != weth && token != bridge,
            "TreasureFinder: Invalid bridge"
        );

        // Effects
        _bridges[token] = bridge;
        emit LogBridgeSet(token, bridge);
    }

    // M1 - M5: OK
    // C1 - C24: OK
    // C6: It's not a fool proof solution, but it prevents flash loans, so here it's ok to use tx.origin
    modifier onlyEOA() {
        // Try to make flash-loan exploit harder to do by only allowing externally owned addresses.
        require(msg.sender == tx.origin, "TreasureFinder: must use EOA");
        _;
    }

    // F1 - F10: OK
    // F3: _convert is separate to save gas by only checking the 'onlyEOA' modifier once in case of convertMultiple
    // F6: There is an exploit to add lots of BONE to the bar, run convert, then remove the BONE again.
    //     As the size of the BuryBone has grown, this requires large amounts of funds and isn't super profitable anymore
    //     The onlyEOA modifier prevents this being done with a flash loan.
    // C1 - C24: OK
    function convert(address token0, address token1) external onlyEOA() {
        uint amountBONE = _convert(token0, token1);
        buryTokens(amountBONE);
    }

    // F1 - F10: OK, see convert
    // C1 - C24: OK
    // C3: Loop is under control of the caller
    function convertMultiple(
        address[] calldata token0,
        address[] calldata token1
    ) external onlyEOA() {
        // TODO: This can be optimized a fair bit, but this is safer and simpler for now
        uint256 len = token0.length;
        uint amountBONE;
        for(uint256 i=0; i < len; i++) {
            amountBONE = amountBONE.add(_convert(token0[i], token1[i]));
        }
        buryTokens(amountBONE);
    }

    function buryTokens(uint amountBONE) internal {
        if(amountBONE == 0) {
            return;
        }

        uint amountBONEtoBury = amountBONE / 3;
        uint amountBONEtoSwap = amountBONE.sub(amountBONEtoBury);

        uint ethToSwap = _swap(bone, weth, amountBONEtoSwap, address(this));
        uint ethForShib = ethToSwap / 2;
        uint ethForLeash = ethToSwap.sub(ethForShib);

        uint amountSHIBtoBury = _swap(weth, shib, ethForShib, buryShib);
        uint amountLEASHtoBury = _swap(weth, leash, ethForLeash, buryLeash);

        IERC20(bone).safeTransfer(buryBone, amountBONEtoBury);
    }

    // F1 - F10: OK
    // C1- C24: OK
    function _convert(address token0, address token1) internal returns(uint256) {
        // Interactions
        // S1 - S4: OK
        IUniswapV2Pair pair = IUniswapV2Pair(factory.getPair(token0, token1));
        require(address(pair) != address(0), "TreasureFinder: Invalid pair");
        // balanceOf: S1 - S4: OK
        // transfer: X1 - X5: OK
        IERC20(address(pair)).safeTransfer(
            address(pair),
            pair.balanceOf(address(this))
        );
        // X1 - X5: OK
        (uint256 amount0, uint256 amount1) = pair.burn(address(this));
        if (token0 != pair.token0()) {
            (amount0, amount1) = (amount1, amount0);
        }

        uint amountBONE;
        if (!_convertTopCoins(token0, token1, amount0, amount1)) {
            // convert amount0, amount1 to BONE
            amountBONE = _convertStep(token0, token1, amount0, amount1);
            emit LogConvert(
                msg.sender,
                token0,
                token1,
                amount0,
                amount1,
                amountBONE
            );
        }
        return amountBONE;
    }

    function _convertTopCoins(
        address token0,
        address token1,
        uint amount0,
        uint amount1
    ) internal returns(bool) {

        bool isTop0 = factory.topCoins(token0);
        bool isTop1 = factory.topCoins(token1);

        if (isTop0 && isTop1) {
            IERC20(token0).safeTransfer(topCoinDestination, amount0);
            IERC20(token1).safeTransfer(topCoinDestination, amount1);
        }
        else if (isTop0) {
            IERC20(token0).safeTransfer(topCoinDestination, _swap(token1, token0, amount1, address(this)).add(amount0));
        } else if (isTop1) {
            IERC20(token1).safeTransfer(topCoinDestination, _swap(token0, token1, amount0, address(this)).add(amount1));
        } else {
            return false;
        }
        return true;
    }

    // F1 - F10: OK
    // C1 - C24: OK
    // All safeTransfer, _swap, _toBONE, _convertStep: X1 - X5: OK
    function _convertStep(
        address token0,
        address token1,
        uint256 amount0,
        uint256 amount1
    ) internal returns(uint256 boneOut) {
        // Interactions
        if (token0 == token1) {
            uint256 amount = amount0.add(amount1);
            if (token0 == bone) {
                boneOut = amount;
            } else if (token0 == weth) {
                boneOut = _toBONE(weth, amount);
            } else {
                address bridge = bridgeFor(token0);
                amount = _swap(token0, bridge, amount, address(this));
                boneOut = _convertStep(bridge, bridge, amount, 0);
            }
        } else if (token0 == bone) {
            // eg. BONE - ETH
            boneOut = _toBONE(token1, amount1).add(amount0);
        } else if (token1 == bone) {
            // eg. USDT - BONE
            boneOut = _toBONE(token0, amount0).add(amount1);
        } else if (token0 == weth) {
            // eg. ETH - USDC
            boneOut = _toBONE(
                weth,
                _swap(token1, weth, amount1, address(this)).add(amount0)
            );
        } else if (token1 == weth) {
            // eg. USDT - ETH
            boneOut = _toBONE(
                weth,
                _swap(token0, weth, amount0, address(this)).add(amount1)
            );
        } else {
            // eg. MIC - USDT
            address bridge0 = bridgeFor(token0);
            address bridge1 = bridgeFor(token1);
            if (bridge0 == token1) {
                // eg. MIC - USDT - and bridgeFor(MIC) = USDT
                boneOut = _convertStep(
                    bridge0,
                    token1,
                    _swap(token0, bridge0, amount0, address(this)),
                    amount1
                );
            } else if (bridge1 == token0) {
                // eg. WBTC - DSD - and bridgeFor(DSD) = WBTC
                boneOut = _convertStep(
                    token0,
                    bridge1,
                    amount0,
                    _swap(token1, bridge1, amount1, address(this))
                );
            } else {
                // eg. USDT - DSD - and bridgeFor(DSD) = WBTC
                boneOut = _convertStep(
                    bridge0,
                    bridge1,
                    _swap(token0, bridge0, amount0, address(this)),
                    _swap(token1, bridge1, amount1, address(this))
                );
            }
        }
    }

    // F1 - F10: OK
    // C1 - C24: OK
    // All safeTransfer, swap: X1 - X5: OK
    function _swap(address fromToken, address toToken, uint256 amountIn, address to) internal returns (uint256 amountOut) {

        if(amountIn == 0) {
            return 0;
        }
        // Checks
        // X1 - X5: OK
        IUniswapV2Pair pair = IUniswapV2Pair(factory.getPair(fromToken, toToken));
        require(address(pair) != address(0), "TreasureFinder: Cannot convert");

        // Interactions
        // X1 - X5: OK
        (uint256 reserve0, uint256 reserve1,) = pair.getReserves();
        uint256 amountInWithFee = amountIn.mul(uint(1000).sub(pair.totalFee()));
        if (fromToken == pair.token0()) {
            amountOut = amountInWithFee.mul(reserve1) / reserve0.mul(1000).add(amountInWithFee);
            IERC20(fromToken).safeTransfer(address(pair), amountIn);
            pair.swap(0, amountOut, to, new bytes(0));
            // TODO: Add maximum slippage?
        } else {
            amountOut = amountInWithFee.mul(reserve0) / reserve1.mul(1000).add(amountInWithFee);
            IERC20(fromToken).safeTransfer(address(pair), amountIn);
            pair.swap(amountOut, 0, to, new bytes(0));
            // TODO: Add maximum slippage?
        }
    }

    // F1 - F10: OK
    // C1 - C24: OK
    function _toBONE(address token, uint256 amountIn) internal returns(uint256 amountOut) {
        // X1 - X5: OK
        amountOut = _swap(token, bone, amountIn, address(this));
    }

    function setTopCoinDestination(address _destination) external onlyOwner {
        topCoinDestination = _destination;
        emit TopCoinDestination(msg.sender, _destination);
    }
}

File 2 of 8 : BoringMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
// a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math)
library BoringMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");}
    function to128(uint256 a) internal pure returns (uint128 c) {
        require(a <= uint128(-1), "BoringMath: uint128 Overflow");
        c = uint128(a);
    }
}

library BoringMath128 {
    function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

File 3 of 8 : BoringERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

import "../interfaces/IERC20.sol";

library BoringERC20 {
    function safeSymbol(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeName(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeDecimals(IERC20 token) public view returns (uint8) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567));
        return success && data.length == 32 ? abi.decode(data, (uint8)) : 18;
    }

    function safeTransfer(IERC20 token, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed");
    }

    function safeTransferFrom(IERC20 token, address from, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, address(this), amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed");
    }
}

File 4 of 8 : IUniswapV2ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.5.0;

interface IUniswapV2ERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

File 5 of 8 : IUniswapV2Pair.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    
    function totalFee() external view returns (uint);
    function alpha() external view returns (uint);
    function beta() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address, uint, uint, uint) external;
}

File 6 of 8 : IUniswapV2Factory.sol
// SPDX-License-Identifier: MIT

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 migrator() external view returns (address);

    function totalFeeTopCoin() external view returns (uint);
    function alphaTopCoin() external view returns (uint);
    function betaTopCoin() external view returns (uint);
    function totalFeeRegular() external view returns (uint);
    function alphaRegular() external view returns (uint);
    function betaRegular() external view returns (uint);

    function topCoins(address token) external view returns (bool isTopCoin);
    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;
    function setMigrator(address) external;
}

File 7 of 8 : BoringOwnable.sol
// SPDX-License-Identifier: MIT
// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;

// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

// T1 - T4: OK
contract BoringOwnableData {
    // V1 - V5: OK
    address public owner;
    // V1 - V5: OK
    address public pendingOwner;
}

// T1 - T4: OK
contract BoringOwnable is BoringOwnableData {
    // E1: OK
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () internal {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;
        
        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    // M1 - M5: OK
    // C1 - C21: OK
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}

File 8 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    // EIP 2612
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_swapRewardDistributor","type":"address"},{"internalType":"address","name":"_buryBone","type":"address"},{"internalType":"address","name":"_buryLeash","type":"address"},{"internalType":"address","name":"_buryShib","type":"address"},{"internalType":"address","name":"_bone","type":"address"},{"internalType":"address","name":"_shib","type":"address"},{"internalType":"address","name":"_leash","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"bridge","type":"address"}],"name":"LogBridgeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"server","type":"address"},{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBONE","type":"uint256"}],"name":"LogConvert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"destination","type":"address"}],"name":"TopCoinDestination","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"bridgeFor","outputs":[{"internalType":"address","name":"bridge","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buryBone","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buryLeash","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buryShib","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"name":"convert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"token0","type":"address[]"},{"internalType":"address[]","name":"token1","type":"address[]"}],"name":"convertMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_destination","type":"address"}],"name":"setTopCoinDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"topCoinDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

61018060405234801561001157600080fd5b50604051620020ad380380620020ad833981810160405261012081101561003757600080fd5b50805160208201516040808401516060850151608086015160a087015160c088015160e089015161010090990151600080546001600160a01b0319163390811782559751999a98999698959794969395929492939192917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b03891661010e576040805162461bcd60e51b815260206004820152601a60248201527f5f666163746f72792069732061207a65726f2061646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038416610169576040805162461bcd60e51b815260206004820152601760248201527f5f626f6e652069732061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b6001600160a01b0383166101c4576040805162461bcd60e51b815260206004820152601760248201527f5f736869622069732061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b6001600160a01b03821661021f576040805162461bcd60e51b815260206004820152601860248201527f5f6c656173682069732061207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b6001600160a01b03811661027a576040805162461bcd60e51b815260206004820152601760248201527f5f776574682069732061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b606089811b6001600160601b031990811660805288821b811660a05287821b811660c05286821b811660e05285821b81166101005284821b81166101205283821b8116610140529082901b1661016052600280546001600160a01b0319166001600160a01b03998a161790559787169795871696948516959385169492831693918316929081169116611ceb620003c2600039806107c952806108ff5280610db85280610df95280610e69528061137f52806113bc52806114b352806114f052806115195280611546528061158352806115ac525080610e8a525080610e1a52508061078c5280610d975280610edf528061133d528061141c528061146b5280611c1c5250806104635280610e3c5250806106fa5280610eac5250806109265280610f015250806109b552806109eb52806110ec52806111c452806116ea5250611ceb6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b6fe658f11610066578063b6fe658f146102a7578063bd1b820c146102af578063c45a0155146102dd578063e30c3978146102e5576100ea565b80638da5cb5b1461024b5780639d22ae8c14610253578063a761a93914610281576100ea565b80632f9c5141116100c85780632f9c514114610153578063303e6aa4146101795780634e71e0c81461023b5780637139a44814610243576100ea565b8063078dfbe7146100ef57806319feee731461012757806328ddc9071461014b575b600080fd5b6101256004803603606081101561010557600080fd5b506001600160a01b038135169060208101351515906040013515156102ed565b005b61012f610461565b604080516001600160a01b039092168252519081900360200190f35b61012f610485565b6101256004803603602081101561016957600080fd5b50356001600160a01b0316610494565b6101256004803603604081101561018f57600080fd5b8101906020810181356401000000008111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460208302840111640100000000831117156101de57600080fd5b9193909290916020810190356401000000008111156101fc57600080fd5b82018360208201111561020e57600080fd5b8035906020019184602083028401116401000000008311171561023057600080fd5b509092509050610557565b61012561061e565b61012f6106f8565b61012f61071c565b6101256004803603604081101561026957600080fd5b506001600160a01b038135811691602001351661072b565b61012f6004803603602081101561029757600080fd5b50356001600160a01b03166108dc565b61012f610924565b610125600480360360408110156102c557600080fd5b506001600160a01b0381358116916020013516610948565b61012f6109b3565b61012f6109d7565b6000546001600160a01b0316331461034c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b8115610428576001600160a01b0383161515806103665750805b6103b7576040805162461bcd60e51b815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851617905561045c565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0385161790555b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6002546001600160a01b031681565b6000546001600160a01b031633146104f3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907f2ef1486fc4f89c6e84643d3ff771f9c8ca76c4cffa85e324e10b0af5039f510890600090a350565b3332146105ab576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a206d7573742075736520454f4100000000604482015290519081900360640190fd5b826000805b8281101561060c576106026105fb8888848181106105ca57fe5b905060200201356001600160a01b03168787858181106105e657fe5b905060200201356001600160a01b03166109e6565b8390610d1c565b91506001016105b0565b5061061681610d74565b505050505050565b6001546001600160a01b031633811461067e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031681565b6000546001600160a01b0316331461078a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141580156107fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561081c5750806001600160a01b0316826001600160a01b031614155b61086d576040805162461bcd60e51b815260206004820152601e60248201527f547265617375726546696e6465723a20496e76616c6964206272696467650000604482015290519081900360640190fd5b6001600160a01b0382811660008181526003602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b6001600160a01b03808216600090815260036020526040902054168061091f57507f00000000000000000000000000000000000000000000000000000000000000005b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b33321461099c576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a206d7573742075736520454f4100000000604482015290519081900360640190fd5b60006109a883836109e6565b905061045c81610d74565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390585856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015610a6757600080fd5b505afa158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b505190506001600160a01b038116610af0576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a20496e76616c6964207061697200000000604482015290519081900360640190fd5b610b7e81826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b4157600080fd5b505afa158015610b55573d6000803e3d6000fd5b505050506040513d6020811015610b6b57600080fd5b50516001600160a01b0384169190610f31565b600080826001600160a01b03166389afcb44306040518263ffffffff1660e01b815260040180826001600160a01b031681526020019150506040805180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b505050506040513d6040811015610bf957600080fd5b508051602091820151604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290519295509093506001600160a01b03861692630dfe168192600480840193829003018186803b158015610c5c57600080fd5b505afa158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50516001600160a01b03878116911614610c9c57905b6000610caa878785856110e7565b610d1057610cba87878585611311565b604080518581526020810185905280820183905290519192506001600160a01b0380891692908a169133917fd06b1d7ed79b664d17472c6f6997b929f1abe463ccccb4e5b6a0038f2f730c159181900360600190a45b93505050505b92915050565b81810181811015610d16576040805162461bcd60e51b815260206004820152601860248201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604482015290519081900360640190fd5b80610d7e57610f2e565b600381046000610d8e838361167f565b90506000610dde7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084306116d7565b9050600281046000610df0838361167f565b90506000610e607f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f00000000000000000000000000000000000000000000000000000000000000006116d7565b90506000610ed07f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f00000000000000000000000000000000000000000000000000000000000000006116d7565b9050610f266001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000089610f31565b505050505050505b50565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310610ffa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fbd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461105c576040519150601f19603f3d011682016040523d82523d6000602084013e611061565b606091505b509150915081801561108f57508051158061108f575080806020019051602081101561108c57600080fd5b50515b6110e0576040805162461bcd60e51b815260206004820152601c60248201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b5050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2c649d8876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561115757600080fd5b505afa15801561116b573d6000803e3d6000fd5b505050506040513d602081101561118157600080fd5b5051604080517fb2c649d80000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015291519293506000927f00000000000000000000000000000000000000000000000000000000000000009092169163b2c649d891602480820192602092909190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d602081101561123757600080fd5b505190508180156112455750805b1561128357600254611264906001600160a01b03898116911687610f31565b60025461127e906001600160a01b03888116911686610f31565b611302565b81156112c05760025461127e906001600160a01b03166112af876112a98a8c8a306116d7565b90610d1c565b6001600160a01b038a169190610f31565b80156112f75760025461127e906001600160a01b03166112e6866112a98b8b8b306116d7565b6001600160a01b0389169190610f31565b600092505050611309565b6001925050505b949350505050565b6000836001600160a01b0316856001600160a01b0316141561141a5760006113398484610d1c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316141561137d57809150611414565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614156113e8576113e17f000000000000000000000000000000000000000000000000000000000000000082611c14565b9150611414565b60006113f3876108dc565b9050611401878284306116d7565b91506114108182846000611311565b9250505b50611309565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141561146957611462836112a98685611c14565b9050611309565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614156114b157611462826112a98786611c14565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415611544576114627f000000000000000000000000000000000000000000000000000000000000000061153f856112a9887f000000000000000000000000000000000000000000000000000000000000000088306116d7565b611c14565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614156115d2576114627f000000000000000000000000000000000000000000000000000000000000000061153f846112a9897f000000000000000000000000000000000000000000000000000000000000000089306116d7565b60006115dd866108dc565b905060006115ea866108dc565b9050856001600160a01b0316826001600160a01b031614156116245761161d82876116178a868a306116d7565b87611311565b9250611675565b866001600160a01b0316816001600160a01b031614156116555761161d8782876116508a868a306116d7565b611311565b61167282826116668a868a306116d7565b6116508a868a306116d7565b92505b5050949350505050565b80820382811115610d16576040805162461bcd60e51b815260206004820152601560248201527f426f72696e674d6174683a20556e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000826116e657506000611309565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a4390587876040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561176657600080fd5b505afa15801561177a573d6000803e3d6000fd5b505050506040513d602081101561179057600080fd5b505190506001600160a01b0381166117ef576040805162461bcd60e51b815260206004820152601e60248201527f547265617375726546696e6465723a2043616e6e6f7420636f6e766572740000604482015290519081900360640190fd5b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561182b57600080fd5b505afa15801561183f573d6000803e3d6000fd5b505050506040513d606081101561185557600080fd5b508051602091820151604080517f1df4ccfc00000000000000000000000000000000000000000000000000000000815290516dffffffffffffffffffffffffffff93841696509290911693506000926119139261190c926001600160a01b03891692631df4ccfc92600480840193829003018186803b1580156118d757600080fd5b505afa1580156118eb573d6000803e3d6000fd5b505050506040513d602081101561190157600080fd5b50516103e89061167f565b8890611c49565b9050836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561194e57600080fd5b505afa158015611962573d6000803e3d6000fd5b505050506040513d602081101561197857600080fd5b50516001600160a01b038a811691161415611acc5761199d816112a9856103e8611c49565b6119a78284611c49565b816119ae57fe5b0494506119c56001600160a01b038a168589610f31565b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201818152604483018990526001600160a01b038a81166064850152608060848501908152845160a48601819052918a169563022c0d9f958c948e9491939092909160c4850191908083838b5b83811015611a60578181015183820152602001611a48565b50505050905090810190601f168015611a8d5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611aaf57600080fd5b505af1158015611ac3573d6000803e3d6000fd5b50505050611c08565b611adc816112a9846103e8611c49565b611ae68285611c49565b81611aed57fe5b049450611b046001600160a01b038a168589610f31565b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201888152604483018290526001600160a01b038a81166064850152608060848501908152845160a48601819052918a169563022c0d9f958c95948e9491939092909160c4850191908083838a5b83811015611ba0578181015183820152602001611b88565b50505050905090810190601f168015611bcd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611bef57600080fd5b505af1158015611c03573d6000803e3d6000fd5b505050505b50505050949350505050565b6000611c42837f000000000000000000000000000000000000000000000000000000000000000084306116d7565b9392505050565b6000811580611c6457505080820282828281611c6157fe5b04145b610d16576040805162461bcd60e51b815260206004820152601860248201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604482015290519081900360640190fdfea264697066735822122093b16efd07c9d8affe9bd2e1eb39e4e26decaf63c473b8a69aab89f1f7e346c364736f6c634300060c0033000000000000000000000000115934131916c8b277dd010ee02de363c09d037c000000000000000000000000f71741c102e5295813912cf3b2fc07bc740a0f1c000000000000000000000000f7a0383750fef5abace57cc4c9ff98e3790202b3000000000000000000000000a57d319b3cf3ad0e4d19770f71e63cf847263a0b000000000000000000000000b4a81261b16b92af0b9f7c4a83f1e885132d81e40000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d900000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce00000000000000000000000027c70cd1946795b66be9d954418546998b546634000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b6fe658f11610066578063b6fe658f146102a7578063bd1b820c146102af578063c45a0155146102dd578063e30c3978146102e5576100ea565b80638da5cb5b1461024b5780639d22ae8c14610253578063a761a93914610281576100ea565b80632f9c5141116100c85780632f9c514114610153578063303e6aa4146101795780634e71e0c81461023b5780637139a44814610243576100ea565b8063078dfbe7146100ef57806319feee731461012757806328ddc9071461014b575b600080fd5b6101256004803603606081101561010557600080fd5b506001600160a01b038135169060208101351515906040013515156102ed565b005b61012f610461565b604080516001600160a01b039092168252519081900360200190f35b61012f610485565b6101256004803603602081101561016957600080fd5b50356001600160a01b0316610494565b6101256004803603604081101561018f57600080fd5b8101906020810181356401000000008111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460208302840111640100000000831117156101de57600080fd5b9193909290916020810190356401000000008111156101fc57600080fd5b82018360208201111561020e57600080fd5b8035906020019184602083028401116401000000008311171561023057600080fd5b509092509050610557565b61012561061e565b61012f6106f8565b61012f61071c565b6101256004803603604081101561026957600080fd5b506001600160a01b038135811691602001351661072b565b61012f6004803603602081101561029757600080fd5b50356001600160a01b03166108dc565b61012f610924565b610125600480360360408110156102c557600080fd5b506001600160a01b0381358116916020013516610948565b61012f6109b3565b61012f6109d7565b6000546001600160a01b0316331461034c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b8115610428576001600160a01b0383161515806103665750805b6103b7576040805162461bcd60e51b815260206004820152601560248201527f4f776e61626c653a207a65726f20616464726573730000000000000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851617905561045c565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0385161790555b505050565b7f000000000000000000000000b4a81261b16b92af0b9f7c4a83f1e885132d81e481565b6002546001600160a01b031681565b6000546001600160a01b031633146104f3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907f2ef1486fc4f89c6e84643d3ff771f9c8ca76c4cffa85e324e10b0af5039f510890600090a350565b3332146105ab576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a206d7573742075736520454f4100000000604482015290519081900360640190fd5b826000805b8281101561060c576106026105fb8888848181106105ca57fe5b905060200201356001600160a01b03168787858181106105e657fe5b905060200201356001600160a01b03166109e6565b8390610d1c565b91506001016105b0565b5061061681610d74565b505050505050565b6001546001600160a01b031633811461067e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179055600180549091169055565b7f000000000000000000000000a57d319b3cf3ad0e4d19770f71e63cf847263a0b81565b6000546001600160a01b031681565b6000546001600160a01b0316331461078a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b7f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b0316826001600160a01b0316141580156107fe57507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316826001600160a01b031614155b801561081c5750806001600160a01b0316826001600160a01b031614155b61086d576040805162461bcd60e51b815260206004820152601e60248201527f547265617375726546696e6465723a20496e76616c6964206272696467650000604482015290519081900360640190fd5b6001600160a01b0382811660008181526003602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f2e103aa707acc565f9a1547341914802b2bfe977fd79c595209f248ae4b006139190a35050565b6001600160a01b03808216600090815260036020526040902054168061091f57507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b919050565b7f000000000000000000000000f7a0383750fef5abace57cc4c9ff98e3790202b381565b33321461099c576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a206d7573742075736520454f4100000000604482015290519081900360640190fd5b60006109a883836109e6565b905061045c81610d74565b7f000000000000000000000000115934131916c8b277dd010ee02de363c09d037c81565b6001546001600160a01b031681565b6000807f000000000000000000000000115934131916c8b277dd010ee02de363c09d037c6001600160a01b031663e6a4390585856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015610a6757600080fd5b505afa158015610a7b573d6000803e3d6000fd5b505050506040513d6020811015610a9157600080fd5b505190506001600160a01b038116610af0576040805162461bcd60e51b815260206004820152601c60248201527f547265617375726546696e6465723a20496e76616c6964207061697200000000604482015290519081900360640190fd5b610b7e81826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b4157600080fd5b505afa158015610b55573d6000803e3d6000fd5b505050506040513d6020811015610b6b57600080fd5b50516001600160a01b0384169190610f31565b600080826001600160a01b03166389afcb44306040518263ffffffff1660e01b815260040180826001600160a01b031681526020019150506040805180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b505050506040513d6040811015610bf957600080fd5b508051602091820151604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290519295509093506001600160a01b03861692630dfe168192600480840193829003018186803b158015610c5c57600080fd5b505afa158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50516001600160a01b03878116911614610c9c57905b6000610caa878785856110e7565b610d1057610cba87878585611311565b604080518581526020810185905280820183905290519192506001600160a01b0380891692908a169133917fd06b1d7ed79b664d17472c6f6997b929f1abe463ccccb4e5b6a0038f2f730c159181900360600190a45b93505050505b92915050565b81810181811015610d16576040805162461bcd60e51b815260206004820152601860248201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604482015290519081900360640190fd5b80610d7e57610f2e565b600381046000610d8e838361167f565b90506000610dde7f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d97f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc284306116d7565b9050600281046000610df0838361167f565b90506000610e607f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc27f00000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce857f000000000000000000000000b4a81261b16b92af0b9f7c4a83f1e885132d81e46116d7565b90506000610ed07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc27f00000000000000000000000027c70cd1946795b66be9d954418546998b546634857f000000000000000000000000a57d319b3cf3ad0e4d19770f71e63cf847263a0b6116d7565b9050610f266001600160a01b037f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9167f000000000000000000000000f7a0383750fef5abace57cc4c9ff98e3790202b389610f31565b505050505050505b50565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310610ffa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fbd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461105c576040519150601f19603f3d011682016040523d82523d6000602084013e611061565b606091505b509150915081801561108f57508051158061108f575080806020019051602081101561108c57600080fd5b50515b6110e0576040805162461bcd60e51b815260206004820152601c60248201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b5050505050565b6000807f000000000000000000000000115934131916c8b277dd010ee02de363c09d037c6001600160a01b031663b2c649d8876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561115757600080fd5b505afa15801561116b573d6000803e3d6000fd5b505050506040513d602081101561118157600080fd5b5051604080517fb2c649d80000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015291519293506000927f000000000000000000000000115934131916c8b277dd010ee02de363c09d037c9092169163b2c649d891602480820192602092909190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d602081101561123757600080fd5b505190508180156112455750805b1561128357600254611264906001600160a01b03898116911687610f31565b60025461127e906001600160a01b03888116911686610f31565b611302565b81156112c05760025461127e906001600160a01b03166112af876112a98a8c8a306116d7565b90610d1c565b6001600160a01b038a169190610f31565b80156112f75760025461127e906001600160a01b03166112e6866112a98b8b8b306116d7565b6001600160a01b0389169190610f31565b600092505050611309565b6001925050505b949350505050565b6000836001600160a01b0316856001600160a01b0316141561141a5760006113398484610d1c565b90507f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b0316866001600160a01b0316141561137d57809150611414565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316866001600160a01b031614156113e8576113e17f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc282611c14565b9150611414565b60006113f3876108dc565b9050611401878284306116d7565b91506114108182846000611311565b9250505b50611309565b7f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b0316856001600160a01b0316141561146957611462836112a98685611c14565b9050611309565b7f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d96001600160a01b0316846001600160a01b031614156114b157611462826112a98786611c14565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316856001600160a01b03161415611544576114627f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc261153f856112a9887f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc288306116d7565b611c14565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316846001600160a01b031614156115d2576114627f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc261153f846112a9897f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc289306116d7565b60006115dd866108dc565b905060006115ea866108dc565b9050856001600160a01b0316826001600160a01b031614156116245761161d82876116178a868a306116d7565b87611311565b9250611675565b866001600160a01b0316816001600160a01b031614156116555761161d8782876116508a868a306116d7565b611311565b61167282826116668a868a306116d7565b6116508a868a306116d7565b92505b5050949350505050565b80820382811115610d16576040805162461bcd60e51b815260206004820152601560248201527f426f72696e674d6174683a20556e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000826116e657506000611309565b60007f000000000000000000000000115934131916c8b277dd010ee02de363c09d037c6001600160a01b031663e6a4390587876040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561176657600080fd5b505afa15801561177a573d6000803e3d6000fd5b505050506040513d602081101561179057600080fd5b505190506001600160a01b0381166117ef576040805162461bcd60e51b815260206004820152601e60248201527f547265617375726546696e6465723a2043616e6e6f7420636f6e766572740000604482015290519081900360640190fd5b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561182b57600080fd5b505afa15801561183f573d6000803e3d6000fd5b505050506040513d606081101561185557600080fd5b508051602091820151604080517f1df4ccfc00000000000000000000000000000000000000000000000000000000815290516dffffffffffffffffffffffffffff93841696509290911693506000926119139261190c926001600160a01b03891692631df4ccfc92600480840193829003018186803b1580156118d757600080fd5b505afa1580156118eb573d6000803e3d6000fd5b505050506040513d602081101561190157600080fd5b50516103e89061167f565b8890611c49565b9050836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561194e57600080fd5b505afa158015611962573d6000803e3d6000fd5b505050506040513d602081101561197857600080fd5b50516001600160a01b038a811691161415611acc5761199d816112a9856103e8611c49565b6119a78284611c49565b816119ae57fe5b0494506119c56001600160a01b038a168589610f31565b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201818152604483018990526001600160a01b038a81166064850152608060848501908152845160a48601819052918a169563022c0d9f958c948e9491939092909160c4850191908083838b5b83811015611a60578181015183820152602001611a48565b50505050905090810190601f168015611a8d5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611aaf57600080fd5b505af1158015611ac3573d6000803e3d6000fd5b50505050611c08565b611adc816112a9846103e8611c49565b611ae68285611c49565b81611aed57fe5b049450611b046001600160a01b038a168589610f31565b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201888152604483018290526001600160a01b038a81166064850152608060848501908152845160a48601819052918a169563022c0d9f958c95948e9491939092909160c4850191908083838a5b83811015611ba0578181015183820152602001611b88565b50505050905090810190601f168015611bcd5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611bef57600080fd5b505af1158015611c03573d6000803e3d6000fd5b505050505b50505050949350505050565b6000611c42837f0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d984306116d7565b9392505050565b6000811580611c6457505080820282828281611c6157fe5b04145b610d16576040805162461bcd60e51b815260206004820152601860248201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604482015290519081900360640190fdfea264697066735822122093b16efd07c9d8affe9bd2e1eb39e4e26decaf63c473b8a69aab89f1f7e346c364736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000115934131916c8b277dd010ee02de363c09d037c000000000000000000000000f71741c102e5295813912cf3b2fc07bc740a0f1c000000000000000000000000f7a0383750fef5abace57cc4c9ff98e3790202b3000000000000000000000000a57d319b3cf3ad0e4d19770f71e63cf847263a0b000000000000000000000000b4a81261b16b92af0b9f7c4a83f1e885132d81e40000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d900000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce00000000000000000000000027c70cd1946795b66be9d954418546998b546634000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _factory (address): 0x115934131916C8b277DD010Ee02de363c09d037c
Arg [1] : _swapRewardDistributor (address): 0xf71741c102e5295813912Cf3b2fc07bc740A0f1c
Arg [2] : _buryBone (address): 0xf7A0383750feF5AbaCe57cc4C9ff98e3790202b3
Arg [3] : _buryLeash (address): 0xa57D319B3Cf3aD0E4d19770f71E63CF847263A0b
Arg [4] : _buryShib (address): 0xB4a81261b16b92af0B9F7C4a83f1E885132D81e4
Arg [5] : _bone (address): 0x9813037ee2218799597d83D4a5B6F3b6778218d9
Arg [6] : _shib (address): 0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE
Arg [7] : _leash (address): 0x27C70Cd1946795B66be9d954418546998b546634
Arg [8] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000115934131916c8b277dd010ee02de363c09d037c
Arg [1] : 000000000000000000000000f71741c102e5295813912cf3b2fc07bc740a0f1c
Arg [2] : 000000000000000000000000f7a0383750fef5abace57cc4c9ff98e3790202b3
Arg [3] : 000000000000000000000000a57d319b3cf3ad0e4d19770f71e63cf847263a0b
Arg [4] : 000000000000000000000000b4a81261b16b92af0b9f7c4a83f1e885132d81e4
Arg [5] : 0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9
Arg [6] : 00000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce
Arg [7] : 00000000000000000000000027c70cd1946795b66be9d954418546998b546634
Arg [8] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.