Contract 0x3e0b7bbad42445dc760059f085d56a86963793c1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf66f860532972399d64fcf3081bc8ded927056ed9770e558ea8522e8ef0120a20x60a0604074168652021-11-25 16:44:41487 days 18 hrs ago0xb9a28b6749eeb871ff4984943e7b7010736dc44a IN  Create: TimeBondingCalculator0 AVAX0.030077968466 38.37865817
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TimeBondingCalculator

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at snowtrace.io on 2021-11-25
*/

// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity 0.7.5;

library FullMath {
    function fullMul(uint256 x, uint256 y) private pure returns (uint256 l, uint256 h) {
        uint256 mm = mulmod(x, y, uint256(-1));
        l = x * y;
        h = mm - l;
        if (mm < l) h -= 1;
    }

    function fullDiv(
        uint256 l,
        uint256 h,
        uint256 d
    ) private pure returns (uint256) {
        uint256 pow2 = d & -d;
        d /= pow2;
        l /= pow2;
        l += h * ((-pow2) / pow2 + 1);
        uint256 r = 1;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        r *= 2 - d * r;
        return l * r;
    }

    function mulDiv(
        uint256 x,
        uint256 y,
        uint256 d
    ) internal pure returns (uint256) {
        (uint256 l, uint256 h) = fullMul(x, y);
        uint256 mm = mulmod(x, y, d);
        if (mm > l) h -= 1;
        l -= mm;
        require(h < d, 'FullMath::mulDiv: overflow');
        return fullDiv(l, h, d);
    }
}

library Babylonian {

    function sqrt(uint256 x) internal pure returns (uint256) {
        if (x == 0) return 0;

        uint256 xx = x;
        uint256 r = 1;
        if (xx >= 0x100000000000000000000000000000000) {
            xx >>= 128;
            r <<= 64;
        }
        if (xx >= 0x10000000000000000) {
            xx >>= 64;
            r <<= 32;
        }
        if (xx >= 0x100000000) {
            xx >>= 32;
            r <<= 16;
        }
        if (xx >= 0x10000) {
            xx >>= 16;
            r <<= 8;
        }
        if (xx >= 0x100) {
            xx >>= 8;
            r <<= 4;
        }
        if (xx >= 0x10) {
            xx >>= 4;
            r <<= 2;
        }
        if (xx >= 0x8) {
            r <<= 1;
        }
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1;
        r = (r + x / r) >> 1; // Seven iterations should be enough
        uint256 r1 = x / r;
        return (r < r1 ? r : r1);
    }
}

library BitMath {

    function mostSignificantBit(uint256 x) internal pure returns (uint8 r) {
        require(x > 0, 'BitMath::mostSignificantBit: zero');

        if (x >= 0x100000000000000000000000000000000) {
            x >>= 128;
            r += 128;
        }
        if (x >= 0x10000000000000000) {
            x >>= 64;
            r += 64;
        }
        if (x >= 0x100000000) {
            x >>= 32;
            r += 32;
        }
        if (x >= 0x10000) {
            x >>= 16;
            r += 16;
        }
        if (x >= 0x100) {
            x >>= 8;
            r += 8;
        }
        if (x >= 0x10) {
            x >>= 4;
            r += 4;
        }
        if (x >= 0x4) {
            x >>= 2;
            r += 2;
        }
        if (x >= 0x2) r += 1;
    }
}

library FixedPoint {
    // range: [0, 2**112 - 1]
    // resolution: 1 / 2**112
    struct uq112x112 {
        uint224 _x;
    }

    // range: [0, 2**144 - 1]
    // resolution: 1 / 2**112
    struct uq144x112 {
        uint256 _x;
    }

    uint8 private constant RESOLUTION = 112;
    uint256 private constant Q112 = 0x10000000000000000000000000000;
    uint256 private constant Q224 = 0x100000000000000000000000000000000000000000000000000000000;
    uint256 private constant LOWER_MASK = 0xffffffffffffffffffffffffffff; // decimal of UQ*x112 (lower 112 bits)

    // decode a UQ112x112 into a uint112 by truncating after the radix point
    function decode(uq112x112 memory self) internal pure returns (uint112) {
        return uint112(self._x >> RESOLUTION);
    }

    // decode a uq112x112 into a uint with 18 decimals of precision
    function decode112with18(uq112x112 memory self) internal pure returns (uint) {
        return uint(self._x) / 5192296858534827;
    }

    function fraction(uint256 numerator, uint256 denominator) internal pure returns (uq112x112 memory) {
        require(denominator > 0, 'FixedPoint::fraction: division by zero');
        if (numerator == 0) return FixedPoint.uq112x112(0);

        if (numerator <= uint144(-1)) {
            uint256 result = (numerator << RESOLUTION) / denominator;
            require(result <= uint224(-1), 'FixedPoint::fraction: overflow');
            return uq112x112(uint224(result));
        } else {
            uint256 result = FullMath.mulDiv(numerator, Q112, denominator);
            require(result <= uint224(-1), 'FixedPoint::fraction: overflow');
            return uq112x112(uint224(result));
        }
    }

    // square root of a UQ112x112
    // lossy between 0/1 and 40 bits
    function sqrt(uq112x112 memory self) internal pure returns (uq112x112 memory) {
        if (self._x <= uint144(-1)) {
            return uq112x112(uint224(Babylonian.sqrt(uint256(self._x) << 112)));
        }

        uint8 safeShiftBits = 255 - BitMath.mostSignificantBit(self._x);
        safeShiftBits -= safeShiftBits % 2;
        return uq112x112(uint224(Babylonian.sqrt(uint256(self._x) << safeShiftBits) << ((112 - safeShiftBits) / 2)));
    }
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function sqrrt(uint256 a) internal pure returns (uint c) {
        if (a > 3) {
            c = a;
            uint b = add( div( a, 2), 1 );
            while (b < c) {
                c = b;
                b = div( add( div( a, b ), b), 2 );
            }
        } else if (a != 0) {
            c = 1;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
}

interface IUniswapV2ERC20 {
    function totalSupply() external view returns (uint);
}

interface IUniswapV2Pair is IUniswapV2ERC20 {
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function token0() external view returns ( address );
    function token1() external view returns ( address );
}

interface IBondingCalculator {
  function valuation( address pair_, uint amount_ ) external view returns ( uint _value );
}

contract TimeBondingCalculator is IBondingCalculator {

    using FixedPoint for *;
    using SafeMath for uint;
    using SafeMath for uint112;

    address public immutable Time;

    constructor( address _Time ) {
        require( _Time != address(0) );
        Time = _Time;
    }

    function getKValue( address _pair ) public view returns( uint k_ ) {
        uint token0 = IERC20( IUniswapV2Pair( _pair ).token0() ).decimals();
        uint token1 = IERC20( IUniswapV2Pair( _pair ).token1() ).decimals();
        uint decimals = token0.add( token1 ).sub( IERC20( _pair ).decimals() );

        (uint reserve0, uint reserve1, ) = IUniswapV2Pair( _pair ).getReserves();
        k_ = reserve0.mul(reserve1).div( 10 ** decimals );
    }

    function getTotalValue( address _pair ) public view returns ( uint _value ) {
        _value = getKValue( _pair ).sqrrt().mul(2);
    }

    function valuation( address _pair, uint amount_ ) external view override returns ( uint _value ) {
        uint totalValue = getTotalValue( _pair );
        uint totalSupply = IUniswapV2Pair( _pair ).totalSupply();

        _value = totalValue.mul( FixedPoint.fraction( amount_, totalSupply ).decode112with18() ).div( 1e18 );
    }

    function markdown( address _pair ) external view returns ( uint ) {
        ( uint reserve0, uint reserve1, ) = IUniswapV2Pair( _pair ).getReserves();

        uint reserve;
        if ( IUniswapV2Pair( _pair ).token0() == Time ) {
            reserve = reserve1;
        } else {
            reserve = reserve0;
        }
        return reserve.mul( 2 * ( 10 ** IERC20( Time ).decimals() ) ).div( getTotalValue( _pair ) );
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_Time","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Time","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"getKValue","outputs":[{"internalType":"uint256","name":"k_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"getTotalValue","outputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"markdown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"valuation","outputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b50604051610dbc380380610dbc8339818101604052602081101561003357600080fd5b50516001600160a01b03811661004857600080fd5b606081901b6001600160601b0319166080526001600160a01b0316610d3861008460003980610201528061029f52806107175250610d386000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063490084ef11610050578063490084ef146100d057806368637549146100f6578063f8e157ea1461011c57610067565b806332da80a31461006c5780634249719f146100a4575b600080fd5b6100926004803603602081101561008257600080fd5b50356001600160a01b0316610140565b60408051918252519081900360200190f35b610092600480360360408110156100ba57600080fd5b506001600160a01b038135169060200135610343565b610092600480360360208110156100e657600080fd5b50356001600160a01b03166103eb565b6100926004803603602081101561010c57600080fd5b50356001600160a01b03166106f1565b610124610715565b604080516001600160a01b039092168252519081900360200190f35b6000806000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561017e57600080fd5b505afa158015610192573d6000803e3d6000fd5b505050506040513d60608110156101a857600080fd5b508051602091820151604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290516dffffffffffffffffffffffffffff93841696509290911693506000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169390891692630dfe1681926004808301939192829003018186803b15801561024957600080fd5b505afa15801561025d573d6000803e3d6000fd5b505050506040513d602081101561027357600080fd5b50516001600160a01b0316141561028b57508061028e565b50815b61033861029a866106f1565b6103327f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d602081101561032057600080fd5b5051849060ff16600a0a600202610739565b90610799565b93505050505b919050565b60008061034f846106f1565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561038c57600080fd5b505afa1580156103a0573d6000803e3d6000fd5b505050506040513d60208110156103b657600080fd5b505190506103e2670de0b6b3a76400006103326103db6103d688866107db565b61095d565b8590610739565b95945050505050565b600080826001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561042757600080fd5b505afa15801561043b573d6000803e3d6000fd5b505050506040513d602081101561045157600080fd5b50516040805163313ce56760e01b815290516001600160a01b039092169163313ce56791600480820192602092909190829003018186803b15801561049557600080fd5b505afa1580156104a9573d6000803e3d6000fd5b505050506040513d60208110156104bf57600080fd5b5051604080517fd21220a7000000000000000000000000000000000000000000000000000000008152905160ff90921692506000916001600160a01b0386169163d21220a7916004808301926020929190829003018186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d602081101561054e57600080fd5b50516040805163313ce56760e01b815290516001600160a01b039092169163313ce56791600480820192602092909190829003018186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d60208110156105bc57600080fd5b50516040805163313ce56760e01b8152905160ff909216925060009161064c916001600160a01b0388169163313ce56791600480820192602092909190829003018186803b15801561060d57600080fd5b505afa158015610621573d6000803e3d6000fd5b505050506040513d602081101561063757600080fd5b505160ff166106468585610975565b906109cf565b9050600080866001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561068a57600080fd5b505afa15801561069e573d6000803e3d6000fd5b505050506040513d60608110156106b457600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506106e6600a84900a6103328484610739565b979650505050505050565b600061070f6002610709610704856103eb565b610a11565b90610739565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000826107485750600061070f565b8282028284828161075557fe5b04146107925760405162461bcd60e51b8152600401808060200182810382526021815260200180610ce26021913960400191505060405180910390fd5b9392505050565b600061079283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a7b565b6107e3610ca9565b600082116108225760405162461bcd60e51b8152600401808060200182810382526026815260200180610cbc6026913960400191505060405180910390fd5b8261083c575060408051602081019091526000815261070f565b71ffffffffffffffffffffffffffffffffffff83116108e357600082607085901b8161086457fe5b0490506001600160e01b038111156108c3576040805162461bcd60e51b815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280826001600160e01b031681525091505061070f565b60006108ff846e01000000000000000000000000000085610b1d565b90506001600160e01b038111156108c3576040805162461bcd60e51b815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b516612725dd1d243ab6001600160e01b039091160490565b600082820183811015610792576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061079283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bb2565b60006003821115610a6d5750806000610a35610a2e836002610799565b6001610975565b90505b81811015610a6757809150610a60610a59610a538584610799565b83610975565b6002610799565b9050610a38565b5061033e565b811561033e57506001919050565b60008183610b075760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610acc578181015183820152602001610ab4565b50505050905090810190601f168015610af95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610b1357fe5b0495945050505050565b6000806000610b2c8686610c0c565b9150915060008480610b3a57fe5b868809905082811115610b4e576001820391505b8083039250848210610ba7576040805162461bcd60e51b815260206004820152601a60248201527f46756c6c4d6174683a3a6d756c4469763a206f766572666c6f77000000000000604482015290519081900360640190fd5b6106e6838387610c39565b60008184841115610c045760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610acc578181015183820152602001610ab4565b505050900390565b6000808060001984860990508385029250828103915082811015610c31576001820391505b509250929050565b60008181038216808381610c4957fe5b049250808581610c5557fe5b049450808160000381610c6457fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b6040805160208101909152600081529056fe4669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203981bc19171fb3b4aa576b17be1e4cc6db49241aa1ee17ffe08bef4be0fd28f064736f6c63430007050033000000000000000000000000f2f7ce610a091b94d41d69f4ff1129434a82e2f0

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

000000000000000000000000f2f7ce610a091b94d41d69f4ff1129434a82e2f0

-----Decoded View---------------
Arg [0] : _Time (address): 0xf2f7ce610a091b94d41d69f4ff1129434a82e2f0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f2f7ce610a091b94d41d69f4ff1129434a82e2f0


Deployed ByteCode Sourcemap

7561:1699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8818:439;;;;;;;;;;;;;;;;-1:-1:-1;8818:439:0;-1:-1:-1;;;;;8818:439:0;;:::i;:::-;;;;;;;;;;;;;;;;8474:336;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8474:336:0;;;;;;;;:::i;7864:457::-;;;;;;;;;;;;;;;;-1:-1:-1;7864:457:0;-1:-1:-1;;;;;7864:457:0;;:::i;8329:137::-;;;;;;;;;;;;;;;;-1:-1:-1;8329:137:0;-1:-1:-1;;;;;8329:137:0;;:::i;7717:29::-;;;:::i;:::-;;;;-1:-1:-1;;;;;7717:29:0;;;;;;;;;;;;;;8818:439;8877:4;8897:13;8912;8947:5;-1:-1:-1;;;;;8931:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8931:37:0;;;;;;;;9009:32;;;;;;;8895:73;;;;;-1:-1:-1;8895:73:0;;;;;-1:-1:-1;8981:12:0;;-1:-1:-1;;;;;9045:4:0;9009:40;;;:30;;;;;;:32;;;;;8931:37;;9009:32;;;;;:30;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9009:32:0;-1:-1:-1;;;;;9009:40:0;;9004:144;;;-1:-1:-1;9077:8:0;9004:144;;;-1:-1:-1;9128:8:0;9004:144;9165:84;9225:22;9240:5;9225:13;:22::i;:::-;9165:54;9198:4;-1:-1:-1;;;;;9190:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9190:25:0;9165:7;;9184:31;;:2;:31;9178:1;:39;9165:11;:54::i;:::-;:58;;:84::i;:::-;9158:91;;;;;8818:439;;;;:::o;8474:336::-;8557:11;8582:15;8600:22;8615:5;8600:13;:22::i;:::-;8582:40;;8633:16;8668:5;-1:-1:-1;;;;;8652:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8652:37:0;;-1:-1:-1;8711:91:0;8796:4;8711:79;8727:61;:43;8748:7;8652:37;8727:19;:43::i;:::-;:59;:61::i;:::-;8711:10;;:14;:79::i;:91::-;8702:100;8474:336;-1:-1:-1;;;;;8474:336:0:o;7864:457::-;7921:7;7942:11;7980:5;-1:-1:-1;;;;;7964:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:32:0;7956:53;;;-1:-1:-1;;;7956:53:0;;;;-1:-1:-1;;;;;7956:51:0;;;;;;:53;;;;;7964:32;;7956:53;;;;;;;;:51;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7956:53:0;8042:32;;;;;;;;7942:67;;;;;-1:-1:-1;8020:11:0;;-1:-1:-1;;;;;8042:30:0;;;;;:32;;;;;7956:53;;8042:32;;;;;;;:30;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8042:32:0;8034:53;;;-1:-1:-1;;;8034:53:0;;;;-1:-1:-1;;;;;8034:51:0;;;;;;:53;;;;;8042:32;;8034:53;;;;;;;;:51;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8034:53:0;8140:26;;;-1:-1:-1;;;8140:26:0;;;;8020:67;;;;;-1:-1:-1;8098:13:0;;8114:54;;-1:-1:-1;;;;;8140:24:0;;;;;:26;;;;;8034:53;;8140:26;;;;;;;;:24;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8140:26:0;8114:54;;:20;:6;8126;8114:10;:20::i;:::-;:24;;:54::i;:::-;8098:70;;8182:13;8197;8232:5;-1:-1:-1;;;;;8216:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8216:37:0;;;;;;;8181:72;;;;;-1:-1:-1;8181:72:0;;-1:-1:-1;8269:44:0;8297:2;:14;;;8269:22;8181:72;;8269:12;:22::i;:44::-;8264:49;7864:457;-1:-1:-1;;;;;;;7864:457:0:o;8329:137::-;8391:11;8425:33;8456:1;8425:26;:18;8436:5;8425:9;:18::i;:::-;:24;:26::i;:::-;:30;;:33::i;:::-;8416:42;8329:137;-1:-1:-1;;8329:137:0:o;7717:29::-;;;:::o;5950:252::-;6008:7;6034:6;6030:47;;-1:-1:-1;6064:1:0;6057:8;;6030:47;6101:5;;;6105:1;6101;:5;:1;6125:5;;;;;:10;6117:56;;;;-1:-1:-1;;;6117:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6193:1;5950:252;-1:-1:-1;;;5950:252:0:o;6210:132::-;6268:7;6295:39;6299:1;6302;6295:39;;;;;;;;;;;;;;;;;:3;:39::i;4126:719::-;4207:16;;:::i;:::-;4258:1;4244:11;:15;4236:66;;;;-1:-1:-1;;;4236:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4317:14;4313:50;;-1:-1:-1;4340:23:0;;;;;;;;;-1:-1:-1;4340:23:0;;4333:30;;4313:50;4380:24;;;4376:462;;4421:14;4466:11;3407:3;4439:23;;;4466:11;4438:39;;;;;;-1:-1:-1;;;;;;4500:21:0;;;4492:64;;;;;-1:-1:-1;;;4492:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4578:26;;;;;;;;4596:6;-1:-1:-1;;;;;4578:26:0;;;;4571:33;;;;;4376:462;4637:14;4654:45;4670:9;3449:31;4687:11;4654:15;:45::i;:::-;4637:62;-1:-1:-1;;;;;;4722:21:0;;;4714:64;;;;;-1:-1:-1;;;4714:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3983:135;4083:7;4094:16;-1:-1:-1;;;;;4078:13:0;;;:32;;3983:135::o;5417:181::-;5475:7;5507:5;;;5531:6;;;;5523:46;;;;;-1:-1:-1;;;5523:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5606:136;5664:7;5691:43;5695:1;5698;5691:43;;;;;;;;;;;;;;;;;:3;:43::i;6636:333::-;6685:6;6712:1;6708;:5;6704:258;;;-1:-1:-1;6734:1:0;6750:6;6759:20;6764:10;6734:1;6772;6764:3;:10::i;:::-;6776:1;6759:3;:20::i;:::-;6750:29;;6794:107;6805:1;6801;:5;6794:107;;;6831:1;6827:5;;6855:30;6860:20;6865:11;6870:1;6873;6865:3;:11::i;:::-;6878:1;6860:3;:20::i;:::-;6882:1;6855:3;:30::i;:::-;6851:34;;6794:107;;;6704:258;;;;6922:6;;6918:44;;-1:-1:-1;6949:1:0;6636:333;;;:::o;6350:278::-;6436:7;6471:12;6464:5;6456:28;;;;-1:-1:-1;;;6456:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6495:9;6511:1;6507;:5;;;;;;;6350:278;-1:-1:-1;;;;;6350:278:0:o;805:347::-;911:7;932:9;943;956:13;964:1;967;956:7;:13::i;:::-;931:38;;;;980:10;1006:1;993:15;;;;;1003:1;1000;993:15;980:28;;1028:1;1023:2;:6;1019:18;;;1036:1;1031:6;;;;1019:18;1053:2;1048:7;;;;1078:1;1074;:5;1066:44;;;;;-1:-1:-1;;;1066:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:16;1136:1;1139;1142;1128:7;:16::i;5750:192::-;5836:7;5872:12;5864:6;;;;5856:29;;;;-1:-1:-1;;;5856:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5908:5:0;;;5750:192::o;97:210::-;158:9;;;-1:-1:-1;;214:1:0;211;204:25;191:38;;248:1;244;:5;240:9;;269:1;264:2;:6;260:10;;290:1;285:2;:6;281:18;;;298:1;293:6;;;;281:18;97:210;;;;;;:::o;315:482::-;421:7;460:2;;;456:6;;;461:1;456:6;473:9;;;;;;;498:4;493:9;;;;;;;;;533:4;525;524:5;;523:14;;;;;582:1;:9;;;611:5;;;607:9;;602:14;636:5;;;632:9;;627:14;661:5;;;657:9;;652:14;686:5;;;682:9;;677:14;711:5;;;707:9;;702:14;736:5;;;732:9;;727:14;761:5;;;757:9;;752:14;;;523;;540:1;523:18;518:24;;;;513:29;;;;784:5;;315:482;-1:-1:-1;;315:482:0:o;-1:-1:-1:-;;;;;;;;;;;;;;:::o

Swarm Source

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