MATIC Price: $1.01 (-3.33%)
Gas: 189 GWei
 

Overview

MATIC Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 MATIC

MATIC Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Value
Transfer Ownersh...304092822022-07-06 15:33:32630 days ago1657121612IN
0x3E22044f...beBdF559D
0 MATIC0.00953366333.07699997
Alter Path191147642021-09-14 23:16:09925 days ago1631661369IN
0x3E22044f...beBdF559D
0 MATIC0.000152444.9284
Alter Path191147512021-09-14 23:15:39925 days ago1631661339IN
0x3E22044f...beBdF559D
0 MATIC0.000152444.9284
Alter Path191145952021-09-14 23:08:11925 days ago1631660891IN
0x3E22044f...beBdF559D
0 MATIC0.000034331.11000011
Alter Path183941432021-08-25 21:52:50945 days ago1629928370IN
0x3E22044f...beBdF559D
0 MATIC0.000038491.244421
Alter Path183939372021-08-25 21:43:42945 days ago1629927822IN
0x3E22044f...beBdF559D
0 MATIC0.000053311.11
Alter Path183938882021-08-25 21:42:00945 days ago1629927720IN
0x3E22044f...beBdF559D
0 MATIC0.000045321.46520014
Alter Path183938502021-08-25 21:40:30945 days ago1629927630IN
0x3E22044f...beBdF559D
0 MATIC0.000114333.6963
Alter Path183938342021-08-25 21:39:26945 days ago1629927566IN
0x3E22044f...beBdF559D
0 MATIC0.000185596
Transfer Ownersh...183937722021-08-25 21:35:52945 days ago1629927352IN
0x3E22044f...beBdF559D
0 MATIC0.000034341.2
Transfer Ownersh...181347842021-08-18 21:49:37952 days ago1629323377IN
0x3E22044f...beBdF559D
0 MATIC0.000028621
Alter Path181347792021-08-18 21:49:23952 days ago1629323363IN
0x3E22044f...beBdF559D
0 MATIC0.000048031
Alter Path181347792021-08-18 21:49:23952 days ago1629323363IN
0x3E22044f...beBdF559D
0 MATIC0.000048031
Set Factory181347652021-08-18 21:48:55952 days ago1629323335IN
0x3E22044f...beBdF559D
0 MATIC0.000069261
0x60806040181347612021-08-18 21:48:47952 days ago1629323327IN
 Create: PathOracle
0 MATIC0.000868371

Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PathOracle

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2021-08-24
*/

// Sources flattened with hardhat v2.4.1 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;
/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File contracts/DeFi/uniswapv2/interfaces/IUniswapV2Factory.sol

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

    function feeToSetter() external view returns (address);
    function migrator() external view returns (address);
    function weth() external view returns (address);
    function wbtc() external view returns (address);
    function gfi() external view returns (address);
    function earningsManager() external view returns (address);
    function feeManager() external view returns (address);
    function dustPan() external view returns (address);
    function governor() external view returns (address);
    function priceOracle() external view returns (address);
    function pathOracle() external view returns (address);
    function router() external view returns (address);
    function paused() external view returns (bool);
    function slippage() external view returns (uint);


    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 setFeeToSetter(address) external;
    function setMigrator(address) external;
}


// File contracts/core/PathOracle.sol


/**
* @dev OWNER SHOULD CALL alterPath(weth, wbtc) after deployment to set the final path properly
**/
contract PathOracle is Ownable {
    mapping(address => address) public pathMap;
    address[] public favoredAssets;
    address public factory;
    IUniswapV2Factory Factory;

    struct node{
        address token;
        bool notLeaf;
    }
    /**
    * @dev emitted when the owner manually alters a path
    * @param fromAsset the token address that is the input into pathMap
    * @param toAsset the token address that is the output from pathMap
    **/
    event pathAltered(address fromAsset, address toAsset);

    /**
    * @dev emitted when a new pair is created, and their addresses are added to pathMap
    * @param leaf the token address of the asset with no other addresses pointed to it(as of this event)
    * @param branch the token address of the asset which the leaf points to
    **/
    event pathAppended(address leaf, address branch);

    event FactoryChanged(address newFactory);

    constructor(address[] memory _favored) {
        require(favoredAssets.length <= 10, 'Gravity Finance: Favored Assets array too large');
        favoredAssets = _favored;
    }

    modifier onlyFactory() {
        require(msg.sender == factory, "Gravity Finance: FORBIDDEN");
        _;
    }

    function setFavored(address[] memory _favored) external onlyOwner{
        require(favoredAssets.length <= 10, 'Gravity Finance: Favored Assets array too large');
        favoredAssets = _favored;
    }

    /**
    * @dev called by owner to manually change the path mapping
    * @param fromAsset the token address used as the input for pathMap
    * @param toAsset the token address that is the output of pathMap
    **/
    function alterPath(address fromAsset, address toAsset) external onlyOwner {
        pathMap[fromAsset] = toAsset;
        emit pathAltered(fromAsset, toAsset);
    }

    /**
    * @dev view function used to get the output from pathMap if from is the input 
    * @param from the address you are going from
    * @return to the address from steps you to
    **/
    function stepPath(address from) public view returns(address to){
        to = pathMap[from];
    }

    /**
    * @dev called by owner to change the factory address
    * @param _address the new factory address
    **/
    function setFactory(address _address) external onlyOwner {
        factory = _address;
        Factory = IUniswapV2Factory(factory);
        emit FactoryChanged(factory);
    }

    /**
    * @dev called by newly created pairs, basically check if either of the pairs are in the favored list, or if they have a pair with a favored list asset
    * @param token0 address of the first token in the pair
    * @param token1 address of the second token in the pair
    **/
    function appendPath(address token0, address token1) external onlyFactory {
        bool inFavored = false;
        //First Check if either of the tokens are in the favored list
        for (uint i=0; i < favoredAssets.length; i++){
            if (token0 == favoredAssets[i]){
                pathMap[token1] = token0; //Swap token1 for token0
                inFavored = true;
                emit pathAppended(token1, token0);
                break;
            }

            else if (token1 == favoredAssets[i]){
                pathMap[token0] = token1; //Swap token0 for token1
                inFavored = true;
                emit pathAppended(token0, token1);
                break;
            }
        }
        //If neither of the tokens are in the favored list, then see if either of them have pairs with a token in the favored list
        if (!inFavored){
            for (uint i=0; i < favoredAssets.length; i++){
                if (Factory.getPair(token0, favoredAssets[i]) != address(0)){
                    pathMap[token1] = token0; //Swap token1 for token0
                    pathMap[token0] = favoredAssets[i];
                    emit pathAppended(token1, token0);
                    break;
                }

                else if (Factory.getPair(token1, favoredAssets[i]) != address(0)){
                    pathMap[token0] = token1; //Swap token0 for token1
                    pathMap[token1] = favoredAssets[i];
                    emit pathAppended(token0, token1);
                    break;
                }
            }
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_favored","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFactory","type":"address"}],"name":"FactoryChanged","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":false,"internalType":"address","name":"fromAsset","type":"address"},{"indexed":false,"internalType":"address","name":"toAsset","type":"address"}],"name":"pathAltered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"leaf","type":"address"},{"indexed":false,"internalType":"address","name":"branch","type":"address"}],"name":"pathAppended","type":"event"},{"inputs":[{"internalType":"address","name":"fromAsset","type":"address"},{"internalType":"address","name":"toAsset","type":"address"}],"name":"alterPath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"name":"appendPath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"favoredAssets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pathMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_favored","type":"address[]"}],"name":"setFavored","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"stepPath","outputs":[{"internalType":"address","name":"to","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162000f2f38038062000f2f8339810160408190526200003491620001ba565b6200003f33620000cc565b600254600a1015620000af5760405162461bcd60e51b815260206004820152602f60248201527f477261766974792046696e616e63653a204661766f726564204173736574732060448201526e617272617920746f6f206c6172676560881b606482015260840160405180910390fd5b8051620000c49060029060208401906200011c565b5050620002a4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000174579160200282015b828111156200017457825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200013d565b506200018292915062000186565b5090565b5b8082111562000182576000815560010162000187565b80516001600160a01b0381168114620001b557600080fd5b919050565b60006020808385031215620001cd578182fd5b82516001600160401b0380821115620001e4578384fd5b818501915085601f830112620001f8578384fd5b8151818111156200020d576200020d6200028e565b8060051b604051601f19603f830116810181811085821117156200023557620002356200028e565b604052828152858101935084860182860187018a101562000254578788fd5b8795505b8386101562000281576200026c816200019d565b85526001959095019493860193860162000258565b5098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b610c7b80620002b46000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063c45a015511610071578063c45a015514610134578063d24416c714610147578063d28ee46e14610173578063f2b7c9c414610186578063f2fde38b14610199578063f7fd0bd8146101ac57600080fd5b80632dbdb090146100ae57806351b4c8ce146100c35780635bb4780814610108578063715018a61461011b5780638da5cb5b14610123575b600080fd5b6100c16100bc366004610a87565b6101bf565b005b6100ec6100d1366004610a48565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100c1610116366004610a48565b6106a8565b6100c1610732565b6000546001600160a01b03166100ec565b6003546100ec906001600160a01b031681565b6100ec610155366004610a48565b6001600160a01b039081166000908152600160205260409020541690565b6100c1610181366004610abf565b610768565b6100ec610194366004610b86565b610814565b6100c16101a7366004610a48565b61083e565b6100c16101ba366004610a87565b6108d9565b6003546001600160a01b0316331461021e5760405162461bcd60e51b815260206004820152601a60248201527f477261766974792046696e616e63653a20464f5242494444454e00000000000060448201526064015b60405180910390fd5b6000805b600254811015610371576002818154811061024d57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03858116911614156102ca576001600160a01b0383811660008181526001602081815260409283902080546001600160a01b031916958a1695861790558251938452830193909352919350600080516020610c2683398151915291015b60405180910390a1610371565b600281815481106102eb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b038481169116141561035f576001600160a01b0384811660008181526001602081815260409283902080546001600160a01b03191695891695861790558251938452830193909352919350600080516020610c2683398151915291016102bd565b8061036981610bd3565b915050610222565b50806106a35760005b6002548110156106a157600454600280546000926001600160a01b03169163e6a4390591889190869081106103bf57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561041157600080fd5b505afa158015610425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104499190610a6b565b6001600160a01b03161461050e576001600160a01b03838116600090815260016020526040902080546001600160a01b03191691861691909117905560028054829081106104a757634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b038781168085526001845260409485902080546001600160a01b031916938316939093179092558351908716815291820152600080516020610c2683398151915291015b60405180910390a16106a1565b600454600280546000926001600160a01b03169163e6a43905918791908690811061054957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190610a6b565b6001600160a01b03161461068f576001600160a01b03848116600090815260016020526040902080546001600160a01b031916918516919091179055600280548290811061063157634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b038681168085526001845260409485902080546001600160a01b031916938316939093179092558351908816815291820152600080516020610c268339815191529101610501565b8061069981610bd3565b91505061037a565b505b505050565b6000546001600160a01b031633146106d25760405162461bcd60e51b815260040161021590610b9e565b600380546001600160a01b0383166001600160a01b0319918216811790925560048054909116821790556040519081527f7ead54cd1fd7e5ddea18605dec62ecb6a27d1f68bee1054cbf93b7abb4e1dc6b9060200160405180910390a150565b6000546001600160a01b0316331461075c5760405162461bcd60e51b815260040161021590610b9e565b610766600061096e565b565b6000546001600160a01b031633146107925760405162461bcd60e51b815260040161021590610b9e565b600254600a10156107fd5760405162461bcd60e51b815260206004820152602f60248201527f477261766974792046696e616e63653a204661766f726564204173736574732060448201526e617272617920746f6f206c6172676560881b6064820152608401610215565b80516108109060029060208401906109be565b5050565b6002818154811061082457600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161021590610b9e565b6001600160a01b0381166108cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610215565b6108d68161096e565b50565b6000546001600160a01b031633146109035760405162461bcd60e51b815260040161021590610b9e565b6001600160a01b0382811660008181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f59a4e309cd3c7f98315488513a3da43b21f9eddcefff7a103b5c4f14ffd01503910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255906000526020600020908101928215610a13579160200282015b82811115610a1357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906109de565b50610a1f929150610a23565b5090565b5b80821115610a1f5760008155600101610a24565b8035610a4381610c10565b919050565b600060208284031215610a59578081fd5b8135610a6481610c10565b9392505050565b600060208284031215610a7c578081fd5b8151610a6481610c10565b60008060408385031215610a99578081fd5b8235610aa481610c10565b91506020830135610ab481610c10565b809150509250929050565b60006020808385031215610ad1578182fd5b823567ffffffffffffffff80821115610ae8578384fd5b818501915085601f830112610afb578384fd5b813581811115610b0d57610b0d610bfa565b8060051b604051601f19603f83011681018181108582111715610b3257610b32610bfa565b604052828152858101935084860182860187018a1015610b50578788fd5b8795505b83861015610b7957610b6581610a38565b855260019590950194938601938601610b54565b5098975050505050505050565b600060208284031215610b97578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000600019821415610bf357634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108d657600080fdfe03dbeb5f6ba5aad7201a9a36528fc3149ea2d9ff8861944e5522b43f6cf65814a26469706673582212209b61f49c6fd34902f7ecf72c2c65cffadf26b019dc435626b481b478d790ffa064736f6c63430008040033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6000000000000000000000000874e178a2f3f3f9d34db862453cd756e7eab0381

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063c45a015511610071578063c45a015514610134578063d24416c714610147578063d28ee46e14610173578063f2b7c9c414610186578063f2fde38b14610199578063f7fd0bd8146101ac57600080fd5b80632dbdb090146100ae57806351b4c8ce146100c35780635bb4780814610108578063715018a61461011b5780638da5cb5b14610123575b600080fd5b6100c16100bc366004610a87565b6101bf565b005b6100ec6100d1366004610a48565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100c1610116366004610a48565b6106a8565b6100c1610732565b6000546001600160a01b03166100ec565b6003546100ec906001600160a01b031681565b6100ec610155366004610a48565b6001600160a01b039081166000908152600160205260409020541690565b6100c1610181366004610abf565b610768565b6100ec610194366004610b86565b610814565b6100c16101a7366004610a48565b61083e565b6100c16101ba366004610a87565b6108d9565b6003546001600160a01b0316331461021e5760405162461bcd60e51b815260206004820152601a60248201527f477261766974792046696e616e63653a20464f5242494444454e00000000000060448201526064015b60405180910390fd5b6000805b600254811015610371576002818154811061024d57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03858116911614156102ca576001600160a01b0383811660008181526001602081815260409283902080546001600160a01b031916958a1695861790558251938452830193909352919350600080516020610c2683398151915291015b60405180910390a1610371565b600281815481106102eb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b038481169116141561035f576001600160a01b0384811660008181526001602081815260409283902080546001600160a01b03191695891695861790558251938452830193909352919350600080516020610c2683398151915291016102bd565b8061036981610bd3565b915050610222565b50806106a35760005b6002548110156106a157600454600280546000926001600160a01b03169163e6a4390591889190869081106103bf57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561041157600080fd5b505afa158015610425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104499190610a6b565b6001600160a01b03161461050e576001600160a01b03838116600090815260016020526040902080546001600160a01b03191691861691909117905560028054829081106104a757634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b038781168085526001845260409485902080546001600160a01b031916938316939093179092558351908716815291820152600080516020610c2683398151915291015b60405180910390a16106a1565b600454600280546000926001600160a01b03169163e6a43905918791908690811061054957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190610a6b565b6001600160a01b03161461068f576001600160a01b03848116600090815260016020526040902080546001600160a01b031916918516919091179055600280548290811061063157634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b038681168085526001845260409485902080546001600160a01b031916938316939093179092558351908816815291820152600080516020610c268339815191529101610501565b8061069981610bd3565b91505061037a565b505b505050565b6000546001600160a01b031633146106d25760405162461bcd60e51b815260040161021590610b9e565b600380546001600160a01b0383166001600160a01b0319918216811790925560048054909116821790556040519081527f7ead54cd1fd7e5ddea18605dec62ecb6a27d1f68bee1054cbf93b7abb4e1dc6b9060200160405180910390a150565b6000546001600160a01b0316331461075c5760405162461bcd60e51b815260040161021590610b9e565b610766600061096e565b565b6000546001600160a01b031633146107925760405162461bcd60e51b815260040161021590610b9e565b600254600a10156107fd5760405162461bcd60e51b815260206004820152602f60248201527f477261766974792046696e616e63653a204661766f726564204173736574732060448201526e617272617920746f6f206c6172676560881b6064820152608401610215565b80516108109060029060208401906109be565b5050565b6002818154811061082457600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146108685760405162461bcd60e51b815260040161021590610b9e565b6001600160a01b0381166108cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610215565b6108d68161096e565b50565b6000546001600160a01b031633146109035760405162461bcd60e51b815260040161021590610b9e565b6001600160a01b0382811660008181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f59a4e309cd3c7f98315488513a3da43b21f9eddcefff7a103b5c4f14ffd01503910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255906000526020600020908101928215610a13579160200282015b82811115610a1357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906109de565b50610a1f929150610a23565b5090565b5b80821115610a1f5760008155600101610a24565b8035610a4381610c10565b919050565b600060208284031215610a59578081fd5b8135610a6481610c10565b9392505050565b600060208284031215610a7c578081fd5b8151610a6481610c10565b60008060408385031215610a99578081fd5b8235610aa481610c10565b91506020830135610ab481610c10565b809150509250929050565b60006020808385031215610ad1578182fd5b823567ffffffffffffffff80821115610ae8578384fd5b818501915085601f830112610afb578384fd5b813581811115610b0d57610b0d610bfa565b8060051b604051601f19603f83011681018181108582111715610b3257610b32610bfa565b604052828152858101935084860182860187018a1015610b50578788fd5b8795505b83861015610b7957610b6581610a38565b855260019590950194938601938601610b54565b5098975050505050505050565b600060208284031215610b97578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000600019821415610bf357634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108d657600080fdfe03dbeb5f6ba5aad7201a9a36528fc3149ea2d9ff8861944e5522b43f6cf65814a26469706673582212209b61f49c6fd34902f7ecf72c2c65cffadf26b019dc435626b481b478d790ffa064736f6c63430008040033

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

000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6000000000000000000000000874e178a2f3f3f9d34db862453cd756e7eab0381

-----Decoded View---------------
Arg [0] : _favored (address[]): 0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619,0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6,0x874e178A2f3f3F9d34db862453Cd756E7eAb0381

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [2] : 0000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619
Arg [3] : 0000000000000000000000001bfd67037b42cf73acf2047067bd4f2c47d9bfd6
Arg [4] : 000000000000000000000000874e178a2f3f3f9d34db862453cd756e7eab0381


Deployed Bytecode Sourcemap

4756:4389:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7530:1612;;;;;;:::i;:::-;;:::i;:::-;;4794:42;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4794:42:0;;;;;;-1:-1:-1;;;;;2625:32:1;;;2607:51;;2595:2;2580:18;4794:42:0;;;;;;;7047:180;;;;;;:::i;:::-;;:::i;2559:94::-;;;:::i;1908:87::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;1908:87;;4880:22;;;;;-1:-1:-1;;;;;4880:22:0;;;6816:100;;;;;;:::i;:::-;-1:-1:-1;;;;;6895:13:0;;;6868:10;6895:13;;;:7;:13;;;;;;;;6816:100;6003:205;;;;;;:::i;:::-;;:::i;4843:30::-;;;;;;:::i;:::-;;:::i;2808:192::-;;;;;;:::i;:::-;;:::i;6440:168::-;;;;;;:::i;:::-;;:::i;7530:1612::-;5937:7;;-1:-1:-1;;;;;5937:7:0;5923:10;:21;5915:60;;;;-1:-1:-1;;;5915:60:0;;4364:2:1;5915:60:0;;;4346:21:1;4403:2;4383:18;;;4376:30;4442:28;4422:18;;;4415:56;4488:18;;5915:60:0;;;;;;;;;7614:14:::1;7723:6:::0;7718:544:::1;7737:13;:20:::0;7733:24;::::1;7718:544;;;7792:13;7806:1;7792:16;;;;;;-1:-1:-1::0;;;7792:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7782:26:0;;::::1;7792:16:::0;::::1;7782:26;7778:473;;;-1:-1:-1::0;;;;;7828:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;;;;:24;;-1:-1:-1;;;;;;7828:24:0::1;::::0;;::::1;::::0;;::::1;::::0;;7936:28;;2881:34:1;;;2931:18;;2924:43;;;;7828:7:0;;-1:-1:-1;;;;;;;;;;;;7936:28:0;2816:18:1;7936:28:0::1;;;;;;;;7983:5;;7778:473;8039:13;8053:1;8039:16;;;;;;-1:-1:-1::0;;;8039:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;8029:26:0;;::::1;8039:16:::0;::::1;8029:26;8025:226;;;-1:-1:-1::0;;;;;8075:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;;;;:24;;-1:-1:-1;;;;;;8075:24:0::1;::::0;;::::1;::::0;;::::1;::::0;;8183:28;;2881:34:1;;;2931:18;;2924:43;;;;8075:7:0;;-1:-1:-1;;;;;;;;;;;;8183:28:0;2816:18:1;8183:28:0::1;2798:175:1::0;8025:226:0::1;7759:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7718:544;;;;8409:9;8404:731;;8439:6;8434:690;8453:13;:20:::0;8449:24;::::1;8434:690;;;8502:7;::::0;8526:13:::1;:16:::0;;8555:1:::1;::::0;-1:-1:-1;;;;;8502:7:0::1;::::0;:15:::1;::::0;8518:6;;8526:13;8540:1;;8526:16;::::1;;;-1:-1:-1::0;;;8526:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;8502:41:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8502:41:0;;;-1:-1:-1;;;;;2899:15:1;;;8502:41:0::1;::::0;::::1;2881:34:1::0;8526:16:0;::::1;2931:18:1::0;;;2924:43;2816:18;;8502:41:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8502:55:0::1;;8498:611;;-1:-1:-1::0;;;;;8581:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;:24;;-1:-1:-1;;;;;;8581:24:0::1;::::0;;::::1;::::0;;;::::1;::::0;;8671:13:::1;:16:::0;;8685:1;;8671:16;::::1;;;-1:-1:-1::0;;;8671:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;8653:15:0;;::::1;::::0;;;8671:16;8653:15;;;;;;;:34;;-1:-1:-1;;;;;;8653:34:0::1;8671:16:::0;;::::1;8653:34:::0;;;::::1;::::0;;;8715:28;;2899:15:1;;;2881:34;;2931:18;;;2924:43;-1:-1:-1;;;;;;;;;;;8715:28:0;2816:18:1;8715:28:0::1;;;;;;;;8766:5;;8498:611;8820:7;::::0;8844:13:::1;:16:::0;;8873:1:::1;::::0;-1:-1:-1;;;;;8820:7:0::1;::::0;:15:::1;::::0;8836:6;;8844:13;8858:1;;8844:16;::::1;;;-1:-1:-1::0;;;8844:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;8820:41:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8820:41:0;;;-1:-1:-1;;;;;2899:15:1;;;8820:41:0::1;::::0;::::1;2881:34:1::0;8844:16:0;::::1;2931:18:1::0;;;2924:43;2816:18;;8820:41:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8820:55:0::1;;8816:293;;-1:-1:-1::0;;;;;8899:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;:24;;-1:-1:-1;;;;;;8899:24:0::1;::::0;;::::1;::::0;;;::::1;::::0;;8989:13:::1;:16:::0;;9003:1;;8989:16;::::1;;;-1:-1:-1::0;;;8989:16:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;8971:15:0;;::::1;::::0;;;8989:16;8971:15;;;;;;;:34;;-1:-1:-1;;;;;;8971:34:0::1;8989:16:::0;;::::1;8971:34:::0;;;::::1;::::0;;;9033:28;;2899:15:1;;;2881:34;;2931:18;;;2924:43;-1:-1:-1;;;;;;;;;;;9033:28:0;2816:18:1;9033:28:0::1;2798:175:1::0;8816:293:0::1;8475:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8434:690;;;;8404:731;5986:1;7530:1612:::0;;:::o;7047:180::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;801:10;2128:23;2120:68;;;;-1:-1:-1;;;2120:68:0;;;;;;;:::i;:::-;7115:7:::1;:18:::0;;-1:-1:-1;;;;;7115:18:0;::::1;-1:-1:-1::0;;;;;;7115:18:0;;::::1;::::0;::::1;::::0;;;7144:7:::1;:36:::0;;;;::::1;::::0;::::1;::::0;;7196:23:::1;::::0;2607:51:1;;;7196:23:0::1;::::0;2595:2:1;2580:18;7196:23:0::1;;;;;;;7047:180:::0;:::o;2559:94::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;801:10;2128:23;2120:68;;;;-1:-1:-1;;;2120:68:0;;;;;;;:::i;:::-;2624:21:::1;2642:1;2624:9;:21::i;:::-;2559:94::o:0;6003:205::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;801:10;2128:23;2120:68;;;;-1:-1:-1;;;2120:68:0;;;;;;;:::i;:::-;6087:13:::1;:20:::0;6111:2:::1;-1:-1:-1::0;6087:26:0::1;6079:86;;;::::0;-1:-1:-1;;;6079:86:0;;3587:2:1;6079:86:0::1;::::0;::::1;3569:21:1::0;3626:2;3606:18;;;3599:30;3665:34;3645:18;;;3638:62;-1:-1:-1;;;3716:18:1;;;3709:45;3771:19;;6079:86:0::1;3559:237:1::0;6079:86:0::1;6176:24:::0;;::::1;::::0;:13:::1;::::0;:24:::1;::::0;::::1;::::0;::::1;:::i;:::-;;6003:205:::0;:::o;4843:30::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4843:30:0;;-1:-1:-1;4843:30:0;:::o;2808:192::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;801:10;2128:23;2120:68;;;;-1:-1:-1;;;2120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2897:22:0;::::1;2889:73;;;::::0;-1:-1:-1;;;2889:73:0;;3180:2:1;2889:73:0::1;::::0;::::1;3162:21:1::0;3219:2;3199:18;;;3192:30;3258:34;3238:18;;;3231:62;-1:-1:-1;;;3309:18:1;;;3302:36;3355:19;;2889:73:0::1;3152:228:1::0;2889:73:0::1;2973:19;2983:8;2973:9;:19::i;:::-;2808:192:::0;:::o;6440:168::-;1954:7;1981:6;-1:-1:-1;;;;;1981:6:0;801:10;2128:23;2120:68;;;;-1:-1:-1;;;2120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6525:18:0;;::::1;;::::0;;;:7:::1;:18;::::0;;;;;;;;:28;;-1:-1:-1;;;;;;6525:28:0::1;::::0;;::::1;::::0;;::::1;::::0;;6569:31;;2881:34:1;;;2931:18;;2924:43;;;;6569:31:0::1;::::0;2816:18:1;6569:31:0::1;;;;;;;6440:168:::0;;:::o;3008:173::-;3064:16;3083:6;;-1:-1:-1;;;;;3100:17:0;;;-1:-1:-1;;;;;;3100:17:0;;;;;;3133:40;;3083:6;;;;;;;3133:40;;3064:16;3133:40;3008:173;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:134:1;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;:::-;399:5;223:187;-1:-1:-1;;;223:187:1:o;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:1177::-;1168:6;1199:2;1242;1230:9;1221:7;1217:23;1213:32;1210:2;;;1263:6;1255;1248:22;1210:2;1308:9;1295:23;1337:18;1378:2;1370:6;1367:14;1364:2;;;1399:6;1391;1384:22;1364:2;1442:6;1431:9;1427:22;1417:32;;1487:7;1480:4;1476:2;1472:13;1468:27;1458:2;;1514:6;1506;1499:22;1458:2;1555;1542:16;1577:2;1573;1570:10;1567:2;;;1583:18;;:::i;:::-;1629:2;1626:1;1622:10;1661:2;1655:9;1724:2;1720:7;1715:2;1711;1707:11;1703:25;1695:6;1691:38;1779:6;1767:10;1764:22;1759:2;1747:10;1744:18;1741:46;1738:2;;;1790:18;;:::i;:::-;1826:2;1819:22;1876:18;;;1910:15;;;;-1:-1:-1;1945:11:1;;;1975;;;1971:20;;1968:33;-1:-1:-1;1965:2:1;;;2019:6;2011;2004:22;1965:2;2046:6;2037:15;;2061:169;2075:2;2072:1;2069:9;2061:169;;;2132:23;2151:3;2132:23;:::i;:::-;2120:36;;2093:1;2086:9;;;;;2176:12;;;;2208;;2061:169;;;-1:-1:-1;2249:6:1;1179:1082;-1:-1:-1;;;;;;;;1179:1082:1:o;2266:190::-;2325:6;2378:2;2366:9;2357:7;2353:23;2349:32;2346:2;;;2399:6;2391;2384:22;2346:2;-1:-1:-1;2427:23:1;;2336:120;-1:-1:-1;2336:120:1:o;3801:356::-;4003:2;3985:21;;;4022:18;;;4015:30;4081:34;4076:2;4061:18;;4054:62;4148:2;4133:18;;3975:182::o;4517:236::-;4556:3;-1:-1:-1;;4577:17:1;;4574:2;;;-1:-1:-1;;;4617:33:1;;4673:4;4670:1;4663:15;4703:4;4624:3;4691:17;4574:2;-1:-1:-1;4745:1:1;4734:13;;4564:189::o;4758:127::-;4819:10;4814:3;4810:20;4807:1;4800:31;4850:4;4847:1;4840:15;4874:4;4871:1;4864:15;4890:131;-1:-1:-1;;;;;4965:31:1;;4955:42;;4945:2;;5011:1;5008;5001:12

Swarm Source

ipfs://9b61f49c6fd34902f7ecf72c2c65cffadf26b019dc435626b481b478d790ffa0

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.