Contract 0x4f0ed527e8a95ecaa132af214dfd41f30b361600

 
Ad
Ad
Txn Hash
Block
From
To
Value [Txn Fee]
0xf5b247bb4c159360d04a312c1f5a7501acce74ab937202b5847783e376e1ec1d65084712021-04-12 18:51:013 mins ago0x13e997c7f7b4daae63a159721e4a73f48e851e89 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x605e411d28ca2f7024894beb6b9c46ec704e285719d3fdb297b2664300e62ef365083592021-04-12 18:45:259 mins ago0x03863f8d3cc03935598dcc46652406c9e1af4dec IN  ValueDefi: vBSWAP Token0 BNB0.000072495
0xa9a576197b43c96d6c1f52418cfa0d9faa82a36ec662ef7d339d6387d83c079065083552021-04-12 18:45:139 mins ago0x03863f8d3cc03935598dcc46652406c9e1af4dec IN  ValueDefi: vBSWAP Token0 BNB0.000072495
0x15ba2410a059bab0c5d95ad1d518e249a3c1a997073cdba2507b78655b065ad865083352021-04-12 18:44:1310 mins ago0xcdacb3d9e314f90065e8545a98e29b661a913707 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x0e2f2b264997ac2df17e291617da096dc17557bd4c64384ec205c4b56a8d29df65082612021-04-12 18:40:3114 mins ago0x5b6a25010a1740179efd8756bbabc8131d73a4cb IN  ValueDefi: vBSWAP Token0 BNB0.0001809
0x91b535d854bb902d806f60bf8954a88c79387189fea44c489bd23a94b32e8fde65082332021-04-12 18:39:0715 mins ago0x679d1c9f327257c4cec9ebc1c7c750728351e989 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xc52a09d5a93dad6ad5afa8123a11a3bf8d514b8cadb86c3bac23a12f20fb286365082142021-04-12 18:38:1016 mins ago0x39aa02d6b499a76a70fab5f164e8be587c366141 IN  ValueDefi: vBSWAP Token0 BNB0.0002559
0x68f5704965a450bb4c49fef6364df408f102824371c8547ca5e673e0c6e9780965082132021-04-12 18:38:0716 mins ago0xa0b960226434c45eaa97a22583750ddbdfe88974 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xf054fef6ebb8e726a418836f18cc8932720c760ae55031be0813dcdf8ebc308365081592021-04-12 18:35:2519 mins ago0xd1d5f293971d2deab5e9199ae7a58501e4ee18af IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x7f171f5f0621c62993a30232990def403f8e13a6415c47d6155edf51578b79a465078722021-04-12 18:21:0433 mins ago0x3ab5118a2252bff88d42b46e9e814a6a400e987c IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xa24b6794544d664be3e8b2e5a18b146c77663de0eb87c2666d78f9cd4773966b65078612021-04-12 18:20:3134 mins ago0x24cbf61ada3c0af4b0b9d87f1b9a9d2289b623ef IN  ValueDefi: vBSWAP Token0 BNB0.0001809
0xa59c4f5ae2f6026ee4180b54530f6018130a3cef2b8ac6dddc78ce875bcdb9f265077852021-04-12 18:16:4338 mins ago0x120725c096c32f9d080c8582dd18b583b4f6cd0d IN  ValueDefi: vBSWAP Token0 BNB0.00018096
0x4465126e5e2167de598729aae3494b7b651bcb309e4ff83657ad58ed7231fef865077352021-04-12 18:14:1340 mins ago0x03863f8d3cc03935598dcc46652406c9e1af4dec IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x1df2bd7011bd939f04828aaefadadf95f263056c9472f7bc1e74d28cae23b2f765077072021-04-12 18:12:4942 mins ago0x44162bb32644610bf3a92daab368a4c3ede21880 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x28e067fb91c4107a79d17171f8a4904f8b40a262385299d0128321e94024445b65076232021-04-12 18:08:3746 mins ago0x6c50e7b6898161f1c949da9448a19d201b4005ac IN  ValueDefi: vBSWAP Token0 BNB0.00018096
0x11dbf01341bd1d9ddcc0c3d1dec4480a7c77fe7fc8d1c08e7b6d69d2d99be48065075722021-04-12 18:06:0448 mins ago0x5a7ec8922b4131e270d1cdbea0ac029f3ad9836e IN  ValueDefi: vBSWAP Token0 BNB0.00018096
0x53d68e04c7030962a65f9e87eecc12aa7ef7ec020241df2fc401db0d0bcd3d8965074522021-04-12 18:00:0454 mins ago0xc01d1fe93a28062bb1b83ffe767538db85bf5ba3 IN  ValueDefi: vBSWAP Token0 BNB0.000125905
0x20c7f73132f2c9db6f4ff82a9c0590f43cf3f402b039754c8fc6e60f6203731d65074522021-04-12 18:00:0454 mins ago0x4819dfec13c5e431ee1142bc24d5b977d3216d2b IN  ValueDefi: vBSWAP Token0 BNB0.00010596
0x50b732a521ace828a9a853298302a8651c5fe68b5c8267f43695cfed5da86b5e65074442021-04-12 17:59:4055 mins ago0xc01d1fe93a28062bb1b83ffe767538db85bf5ba3 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x279566b54aac6e926d2bc83973e26401e0b46356eabd2895ddc770077b78d13465074422021-04-12 17:59:3455 mins ago0xdd11d5db35f52110d6c6a03778e2f822b1f79a0e IN  ValueDefi: vBSWAP Token0 BNB0.000125905
0x394ac730e50d3c891db1ed1dbbf82b634a6e162f488a6289b6ced6e583ecdee165074362021-04-12 17:59:1655 mins ago0xdd11d5db35f52110d6c6a03778e2f822b1f79a0e IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0x3aa5b570a61c095480edaaf49855b971bd7063223982a046e7b7e7c14b6794a265073922021-04-12 17:57:0457 mins ago0x634ac429341e7fa9d5b7080480a44f2bb32abcb5 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xc7d9140d8dc2dbeb2117e8d547d64cc6389cfda7244dfb2c9854732ab43f9df965073772021-04-12 17:56:1958 mins ago0x37529f5bb1115a919a9d5f0e3a9e8258e0012a70 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xa4d15e4e0239e7890fd95223af9133c135b5df810ab88f99fd28523aa5b4e11765073412021-04-12 17:54:311 hr ago0x634ac429341e7fa9d5b7080480a44f2bb32abcb5 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
0xcb03dc30e0c28c810b0c7f417c7c3d09d0e2d5117c50e882e6441c7c5d2002ac65073372021-04-12 17:54:191 hr ago0x28da3dde285d8f1f87b2d858f89961bb8b9af180 IN  ValueDefi: vBSWAP Token0 BNB0.000221905
[ Download CSV Export 

OVERVIEW

The Value DeFi protocol is a platform and suite of products that aim to bring fairness, true value, and innovation to Decentralized Finance.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0x43b9bb5c5b12a66f69350a8a2b65c9549fcf891b ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0x43b9bb5c5b12a66f69350a8a2b65c9549fcf891b ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da8267 ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da8267 ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x0beb63a0cbeeb4957465603b7649a5b9267c831b4692fe4f1055b01d8e3362c154713362021-03-07 11:59:4536 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5736 days 6 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5736 days 6 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5736 days 6 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5736 days 6 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5736 days 6 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0x06eaff47147489400941a63f396e2b1a9cf352b3a29c0886bed6f7b5fd94396154713192021-03-07 11:58:5436 days 6 hrs ago 0xc99e3abe7729a3869d5cad631bcbb90e3d389aa2 ValueDefi: vBSWAP Token0 BNB
0x06eaff47147489400941a63f396e2b1a9cf352b3a29c0886bed6f7b5fd94396154713192021-03-07 11:58:5436 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x30c57b568a2819fdeaac98320b52591cdd3e3e17f107fddb2d636c084602f31f54713172021-03-07 11:58:4836 days 6 hrs ago 0xc99e3abe7729a3869d5cad631bcbb90e3d389aa2 ValueDefi: vBSWAP Token0 BNB
0x30c57b568a2819fdeaac98320b52591cdd3e3e17f107fddb2d636c084602f31f54713172021-03-07 11:58:4836 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
0x4671fec87f650a79f2409e5d365628d2b6cf75d8c9765fbeca7791e41a81923654713042021-03-07 11:58:0936 days 6 hrs ago 0x8f0a813d39f019a2a98958edbf5150d3a06cd20f ValueDefi: vBSWAP Token0 BNB
0x4671fec87f650a79f2409e5d365628d2b6cf75d8c9765fbeca7791e41a81923654713042021-03-07 11:58:0936 days 6 hrs ago 0x8f0a813d39f019a2a98958edbf5150d3a06cd20f ValueDefi: vBSWAP Token0 BNB
0x4671fec87f650a79f2409e5d365628d2b6cf75d8c9765fbeca7791e41a81923654713042021-03-07 11:58:0936 days 6 hrs ago 0x8f0a813d39f019a2a98958edbf5150d3a06cd20f ValueDefi: vBSWAP Token0 BNB
0x649b036eeda6b8e9f63ca3dc8030a666be6286ee654c4982215a53c3a7f815c454713032021-03-07 11:58:0636 days 6 hrs ago 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da8267 ValueDefi: vBSWAP Token0 BNB
0x649b036eeda6b8e9f63ca3dc8030a666be6286ee654c4982215a53c3a7f815c454713032021-03-07 11:58:0636 days 6 hrs ago 0xb7e19a1188776f32e8c2b790d9ca578f2896da7c ValueDefi: vBSWAP Token0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
vBSWAP

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-20
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

/*
 * @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 GSN 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 payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    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;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) public {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract vBSWAP is ERC20 {
    using SafeERC20 for IERC20;
    using SafeMath for uint256;

    address public governance;
    mapping(address => bool) public minters;

    uint256 public cap;

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _cap
    ) public ERC20(_name, _symbol) {
        _setupDecimals(_decimals);
        cap = _cap;
        governance = msg.sender;
    }

    modifier onlyGovernance() {
        require(msg.sender == governance, "!governance");
        _;
    }

    modifier onlyMinter() {
        require(msg.sender == governance || minters[msg.sender], "!governance && !minter");
        _;
    }

    function mint(address _to, uint256 _amount) external onlyMinter {
        _mint(_to, _amount);
    }

    function burn(uint256 _amount) external {
        _burn(msg.sender, _amount);
    }

    function burnFrom(address _account, uint256 _amount) external {
        uint256 decreasedAllowance = allowance(_account, msg.sender).sub(_amount, "ERC20: burn amount exceeds allowance");
        _approve(_account, msg.sender, decreasedAllowance);
        _burn(_account, _amount);
    }

    function setGovernance(address _governance) external onlyGovernance {
        governance = _governance;
    }

    function addMinter(address _minter) external onlyGovernance {
        minters[_minter] = true;
    }

    function removeMinter(address _minter) external onlyGovernance {
        minters[_minter] = false;
    }

    function setCap(uint256 _cap) external onlyGovernance {
        require(_cap >= totalSupply(), "_cap is below current total supply");
        cap = _cap;
    }

    /**
     * @dev See {ERC20-_beforeTokenTransfer}.
     *
     * Requirements:
     *
     * - minted tokens must not cause the total supply to go over the cap.
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);

        if (from == address(0)) {
            // When minting tokens
            require(totalSupply().add(amount) <= cap, "ERC20Capped: cap exceeded");
        }
    }

    // This function allows governance to take unsupported tokens out of the contract. This is in an effort to make someone whole, should they seriously mess up.
    // There is no guarantee governance will vote to return these. It also allows for removal of airdropped tokens.
    function governanceRecoverUnsupported(
        IERC20 _token,
        address _to,
        uint256 _amount
    ) external onlyGovernance {
        _token.safeTransfer(_to, _amount);
    }
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"setCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001f1638038062001f16833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604090815260208281015192909101518651929450925085918591620001c5916003918501906200022f565b508051620001db9060049060208401906200022f565b50506005805460ff1916601217905550620001f68262000219565b600755505060058054610100600160a81b031916336101000217905550620002cb565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027257805160ff1916838001178555620002a2565b82800160010185558215620002a2579182015b82811115620002a257825182559160200191906001019062000285565b50620002b0929150620002b4565b5090565b5b80821115620002b05760008155600101620002b5565b611c3b80620002db6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80635aa6e675116100d8578063a457c2d71161008c578063dd62ed3e11610066578063dd62ed3e14610532578063f46eccc41461056d578063f6383b2c146105a057610182565b8063a457c2d71461048d578063a9059cbb146104c6578063ab033ea9146104ff57610182565b806379cc6790116100bd57806379cc67901461041957806395d89b4114610452578063983b2d561461045a57610182565b80635aa6e675146103b557806370a08231146103e657610182565b8063313ce5671161013a57806340c10f191161011457806340c10f191461034257806342966c681461037b57806347786d371461039857610182565b8063313ce567146102e3578063355274ea14610301578063395093511461030957610182565b806318160ddd1161016b57806318160ddd1461025157806323b872dd1461026b5780633092afd5146102ae57610182565b806306fdde0314610187578063095ea7b314610204575b600080fd5b61018f6105e3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023d6004803603604081101561021a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610697565b604080519115158252519081900360200190f35b6102596106b4565b60408051918252519081900360200190f35b61023d6004803603606081101561028157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356106ba565b6102e1600480360360208110156102c457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661075c565b005b6102eb610833565b6040805160ff9092168252519081900360200190f35b61025961083c565b61023d6004803603604081101561031f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610842565b6102e16004803603604081101561035857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561089d565b6102e16004803603602081101561039157600080fd5b5035610950565b6102e1600480360360208110156103ae57600080fd5b503561095d565b6103bd610a4d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610259600480360360208110156103fc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a6e565b6102e16004803603604081101561042f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a96565b61018f610ae2565b6102e16004803603602081101561047057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b61565b61023d600480360360408110156104a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c3b565b61023d600480360360408110156104dc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610cb0565b6102e16004803603602081101561051557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610cc4565b6102596004803603604081101561054857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d9b565b61023d6004803603602081101561058357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd3565b6102e1600480360360608110156105b657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610de8565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b5050505050905090565b60006106ab6106a4610e94565b8484610e98565b50600192915050565b60025490565b60006106c7848484610fdf565b610751846106d3610e94565b61074c85604051806060016040528060288152602001611adf6028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526001602052604081209061071e610e94565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205491906111af565b610e98565b5060015b9392505050565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1633146107e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e6365000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60055460ff1690565b60075481565b60006106ab61084f610e94565b8461074c8560016000610860610e94565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490611260565b600554610100900473ffffffffffffffffffffffffffffffffffffffff163314806108d757503360009081526006602052604090205460ff165b61094257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f21676f7665726e616e636520262620216d696e74657200000000000000000000604482015290519081900360640190fd5b61094c82826112d4565b5050565b61095a3382611405565b50565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1633146109e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e6365000000000000000000000000000000000000000000604482015290519081900360640190fd5b6109f06106b4565b811015610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611b4c6022913960400191505060405180910390fd5b600755565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6000610ac682604051806060016040528060248152602001611b0760249139610abf8633610d9b565b91906111af565b9050610ad3833383610e98565b610add8383611405565b505050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561068d5780601f106106625761010080835404028352916020019161068d565b600554610100900473ffffffffffffffffffffffffffffffffffffffff163314610bec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e6365000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60006106ab610c48610e94565b8461074c85604051806060016040528060258152602001611be16025913960016000610c72610e94565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d168152925290205491906111af565b60006106ab610cbd610e94565b8484610fdf565b600554610100900473ffffffffffffffffffffffffffffffffffffffff163314610d4f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e6365000000000000000000000000000000000000000000604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60066020526000908152604090205460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff163314610e7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e6365000000000000000000000000000000000000000000604482015290519081900360640190fd5b610add73ffffffffffffffffffffffffffffffffffffffff8416838361154f565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611b936024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611a716022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611b6e6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166110b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611a2c6023913960400191505060405180910390fd5b6110c28383836115dc565b61110c81604051806060016040528060268152602001611a936026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906111af565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546111489082611260565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611258576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561121d578181015183820152602001611205565b50505050905090810190601f16801561124a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561075557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661135657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611362600083836115dc565b60025461136f9082611260565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546113a29082611260565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216611471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b2b6021913960400191505060405180910390fd5b61147d826000836115dc565b6114c781604051806060016040528060228152602001611a4f6022913973ffffffffffffffffffffffffffffffffffffffff851660009081526020819052604090205491906111af565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020556002546114fa9082611684565b60025560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610add9084906116fb565b6115e7838383610add565b73ffffffffffffffffffffffffffffffffffffffff8316610add57600754611617826116116106b4565b90611260565b1115610add57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6000828211156116f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b606061175d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117d39092919063ffffffff16565b805190915015610add5780806020019051602081101561177c57600080fd5b5051610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611bb7602a913960400191505060405180910390fd5b60606117e284846000856117ea565b949350505050565b606082471015611845576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ab96026913960400191505060405180910390fd5b61184e856119a5565b6118b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061192357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016118e6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611985576040519150601f19603f3d011682016040523d82523d6000602084013e61198a565b606091505b509150915061199a8282866119ab565b979650505050505050565b3b151590565b606083156119ba575081610755565b8251156119ca5782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561121d57818101518382015260200161120556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f20616464726573735f6361702069732062656c6f772063757272656e7420746f74616c20737570706c7945524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122047edb5efb2465e96a64102ccf75ecacca4991a37acfc865ef312d1241eb547e864736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000152d02c7e14af6800000000000000000000000000000000000000000000000000000000000000000000876535741502e666900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067642535741500000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000152d02c7e14af6800000000000000000000000000000000000000000000000000000000000000000000876535741502e666900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067642535741500000000000000000000000000000000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 00000000000000000000000000000000000000000000152d02c7e14af6800000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 76535741502e6669000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 7642535741500000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

34223:2770:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13240:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15386:169;;;;;;;;;;;;;;;;-1:-1:-1;15386:169:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;14339:108;;;:::i;:::-;;;;;;;;;;;;;;;;16037:355;;;;;;;;;;;;;;;;-1:-1:-1;16037:355:0;;;;;;;;;;;;;;;;;;:::i;35682:106::-;;;;;;;;;;;;;;;;-1:-1:-1;35682:106:0;;;;:::i;:::-;;14183:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34403:18;;;:::i;16801:218::-;;;;;;;;;;;;;;;;-1:-1:-1;16801:218:0;;;;;;;;;:::i;34952:102::-;;;;;;;;;;;;;;;;-1:-1:-1;34952:102:0;;;;;;;;;:::i;35062:85::-;;;;;;;;;;;;;;;;-1:-1:-1;35062:85:0;;:::i;35796:162::-;;;;;;;;;;;;;;;;-1:-1:-1;35796:162:0;;:::i;34323:25::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14510:127;;;;;;;;;;;;;;;;-1:-1:-1;14510:127:0;;;;:::i;35155:290::-;;;;;;;;;;;;;;;;-1:-1:-1;35155:290:0;;;;;;;;;:::i;13450:95::-;;;:::i;35572:102::-;;;;;;;;;;;;;;;;-1:-1:-1;35572:102:0;;;;:::i;17522:269::-;;;;;;;;;;;;;;;;-1:-1:-1;17522:269:0;;;;;;;;;:::i;14850:175::-;;;;;;;;;;;;;;;;-1:-1:-1;14850:175:0;;;;;;;;;:::i;35453:111::-;;;;;;;;;;;;;;;;-1:-1:-1;35453:111:0;;;;:::i;15088:151::-;;;;;;;;;;;;;;;;-1:-1:-1;15088:151:0;;;;;;;;;;;:::i;34355:39::-;;;;;;;;;;;;;;;;-1:-1:-1;34355:39:0;;;;:::i;36797:193::-;;;;;;;;;;;;;;;;-1:-1:-1;36797:193:0;;;;;;;;;;;;;;;;;;:::i;13240:91::-;13318:5;13311:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:13;;13311:12;;13318:5;;13311:12;;13318:5;13311:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13240:91;:::o;15386:169::-;15469:4;15486:39;15495:12;:10;:12::i;:::-;15509:7;15518:6;15486:8;:39::i;:::-;-1:-1:-1;15543:4:0;15386:169;;;;:::o;14339:108::-;14427:12;;14339:108;:::o;16037:355::-;16177:4;16194:36;16204:6;16212:9;16223:6;16194:9;:36::i;:::-;16241:121;16250:6;16258:12;:10;:12::i;:::-;16272:89;16310:6;16272:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;16292:12;:10;:12::i;:::-;16272:33;;;;;;;;;;;;;-1:-1:-1;16272:33:0;;;:89;:37;:89::i;:::-;16241:8;:121::i;:::-;-1:-1:-1;16380:4:0;16037:355;;;;;;:::o;35682:106::-;34755:10;;;;;;;34741;:24;34733:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35756:16:::1;;35775:5;35756:16:::0;;;:7:::1;:16;::::0;;;;:24;;;::::1;::::0;;35682:106::o;14183:91::-;14257:9;;;;14183:91;:::o;34403:18::-;;;;:::o;16801:218::-;16889:4;16906:83;16915:12;:10;:12::i;:::-;16929:7;16938:50;16977:10;16938:11;:25;16950:12;:10;:12::i;:::-;16938:25;;;;;;;;;;;;;;;;;;-1:-1:-1;16938:25:0;;;:34;;;;;;;;;;;:38;:50::i;34952:102::-;34864:10;;;;;;;34850;:24;;:47;;-1:-1:-1;34886:10:0;34878:19;;;;:7;:19;;;;;;;;34850:47;34842:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35027:19:::1;35033:3;35038:7;35027:5;:19::i;:::-;34952:102:::0;;:::o;35062:85::-;35113:26;35119:10;35131:7;35113:5;:26::i;:::-;35062:85;:::o;35796:162::-;34755:10;;;;;;;34741;:24;34733:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35877:13:::1;:11;:13::i;:::-;35869:4;:21;;35861:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35940:3;:10:::0;35796:162::o;34323:25::-;;;;;;;;;:::o;14510:127::-;14611:18;;14584:7;14611:18;;;;;;;;;;;;14510:127::o;35155:290::-;35228:26;35257:84;35293:7;35257:84;;;;;;;;;;;;;;;;;:31;35267:8;35277:10;35257:9;:31::i;:::-;:35;:84;:35;:84::i;:::-;35228:113;;35352:50;35361:8;35371:10;35383:18;35352:8;:50::i;:::-;35413:24;35419:8;35429:7;35413:5;:24::i;:::-;35155:290;;;:::o;13450:95::-;13530:7;13523:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13497:13;;13523:14;;13530:7;;13523:14;;13530:7;13523:14;;;;;;;;;;;;;;;;;;;;;;;;35572:102;34755:10;;;;;;;34741;:24;34733:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35643:16:::1;;;::::0;;;:7:::1;:16;::::0;;;;:23;;;::::1;35662:4;35643:23;::::0;;35572:102::o;17522:269::-;17615:4;17632:129;17641:12;:10;:12::i;:::-;17655:7;17664:96;17703:15;17664:96;;;;;;;;;;;;;;;;;:11;:25;17676:12;:10;:12::i;:::-;17664:25;;;;;;;;;;;;;;;;;;-1:-1:-1;17664:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;14850:175::-;14936:4;14953:42;14963:12;:10;:12::i;:::-;14977:9;14988:6;14953:9;:42::i;35453:111::-;34755:10;;;;;;;34741;:24;34733:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35532:10:::1;:24:::0;;::::1;::::0;;::::1;;;::::0;;;::::1;::::0;;;::::1;::::0;;35453:111::o;15088:151::-;15204:18;;;;15177:7;15204:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15088:151::o;34355:39::-;;;;;;;;;;;;;;;:::o;36797:193::-;34755:10;;;;;;;34741;:24;34733:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36949:33:::1;:19;::::0;::::1;36969:3:::0;36974:7;36949:19:::1;:33::i;605:106::-:0;693:10;605:106;:::o;20703:380::-;20839:19;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20918:21;;;20910:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20991:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21043:32;;;;;;;;;;;;;;;;;20703:380;;;:::o;18281:573::-;18421:20;;;18413:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18502:23;;;18494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18578:47;18599:6;18607:9;18618:6;18578:20;:47::i;:::-;18658:71;18680:6;18658:71;;;;;;;;;;;;;;;;;:17;;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;18638:17;;;;:9;:17;;;;;;;;;;;:91;;;;18763:20;;;;;;;:32;;18788:6;18763:24;:32::i;:::-;18740:20;;;;:9;:20;;;;;;;;;;;;:55;;;;18811:35;;;;;;;18740:20;;18811:35;;;;;;;;;;;;;18281:573;;;:::o;9237:200::-;9357:7;9393:12;9385:6;;;;9377:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9424:5:0;;;9237:200::o;6410:179::-;6468:7;6500:5;;;6524:6;;;;6516:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19136:378;19220:21;;;19212:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19290:49;19319:1;19323:7;19332:6;19290:20;:49::i;:::-;19367:12;;:24;;19384:6;19367:16;:24::i;:::-;19352:12;:39;19423:18;;;:9;:18;;;;;;;;;;;:30;;19446:6;19423:22;:30::i;:::-;19402:18;;;:9;:18;;;;;;;;;;;:51;;;;19469:37;;;;;;;19402:18;;:9;;19469:37;;;;;;;;;;19136:378;;:::o;19847:418::-;19931:21;;;19923:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20003:49;20024:7;20041:1;20045:6;20003:20;:49::i;:::-;20086:68;20109:6;20086:68;;;;;;;;;;;;;;;;;:18;;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;20065:18;;;:9;:18;;;;;;;;;;:89;20180:12;;:24;;20197:6;20180:16;:24::i;:::-;20165:12;:39;20220:37;;;;;;;;20246:1;;20220:37;;;;;;;;;;;;;19847:418;;:::o;30981:211::-;31125:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31148:23;31125:58;;;31098:86;;31118:5;;31098:19;:86::i;36145:364::-;36288:44;36315:4;36321:2;36325:6;36288:26;:44::i;:::-;36349:18;;;36345:157;;36457:3;;36428:25;36446:6;36428:13;:11;:13::i;:::-;:17;;:25::i;:::-;:32;;36420:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6872:158;6930:7;6963:1;6958;:6;;6950:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7017:5:0;;;6872:158::o;33442:774::-;33866:23;33892:69;33920:4;33892:69;;;;;;;;;;;;;;;;;33900:5;33892:27;;;;:69;;;;;:::i;:::-;33976:17;;33866:95;;-1:-1:-1;33976:21:0;33972:237;;34131:10;34120:30;;;;;;;;;;;;;;;-1:-1:-1;34120:30:0;34112:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25869:229;26006:12;26038:52;26060:6;26068:4;26074:1;26077:12;26038:21;:52::i;:::-;26031:59;25869:229;-1:-1:-1;;;;25869:229:0:o;26989:571::-;27159:12;27217:5;27192:21;:30;;27184:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27284:18;27295:6;27284:10;:18::i;:::-;27276:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27410:12;27424:23;27451:6;:11;;27470:5;27477:4;27451:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27409:73;;;;27500:52;27518:7;27527:10;27539:12;27500:17;:52::i;:::-;27493:59;26989:571;-1:-1:-1;;;;;;;26989:571:0:o;22929:444::-;23309:20;23357:8;;;22929:444::o;29638:777::-;29788:12;29817:7;29813:595;;;-1:-1:-1;29848:10:0;29841:17;;29813:595;29962:17;;:21;29958:439;;30225:10;30219:17;30286:15;30273:10;30269:2;30265:19;30258:44;30173:148;30361:20;;;;;;;;;;;;;;;;;;;;30368:12;;30361:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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