{
    "contractName": "HashflowToken",
    "abi": [
        {
            "constant": true,
            "inputs": [],
            "name": "name",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "approve",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "sender",
                    "type": "address"
                },
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transferFrom",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "DECIMALS",
            "outputs": [
                {
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "decimals",
            "outputs": [
                {
                    "name": "",
                    "type": "uint8"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "addedValue",
                    "type": "uint256"
                }
            ],
            "name": "increaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "balanceOf",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "symbol",
            "outputs": [
                {
                    "name": "",
                    "type": "string"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "spender",
                    "type": "address"
                },
                {
                    "name": "subtractedValue",
                    "type": "uint256"
                }
            ],
            "name": "decreaseAllowance",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "recipient",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "transfer",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "owner",
                    "type": "address"
                },
                {
                    "name": "spender",
                    "type": "address"
                }
            ],
            "name": "allowance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "from",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Transfer",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "spender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "value",
                    "type": "uint256"
                }
            ],
            "name": "Approval",
            "type": "event"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "cap",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "mint",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.5.10+commit.5a6ea5b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Extension of `ERC20` that only allows owner, who has permission to mint (create) new tokens as they see fit. * At construction, the deployer of the contract is the only minter.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`.     * Requirements:     * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"cap()\":{\"details\":\"Returns the cap on the token's total supply.\"},\"constructor\":{\"details\":\"Sets the value of the `cap`. This value is immutable, it can only be set once during construction.\"},\"decimals()\":{\"details\":\"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.     * > Note that 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`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"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`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"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.\"},\"mint(uint256)\":{\"details\":\"* Requirements:     * - the caller must be the `Owner'.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`.     * Requirements:     * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"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 `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/varunvruddhula/hashflowToken/contracts/protocol/token/HashflowToken.sol\":\"HashflowToken\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/varunvruddhula/hashflowToken/contracts/protocol/access/Ownable.sol\":{\"keccak256\":\"0x46b14a3328135b361f71a3d916903c784f3bcd097cf160d4f0e69811ff3b8c71\",\"urls\":[\"bzzr://edd7a93ef9811a5f2626773f287ed1087b9d99b744d58b3a1e711e2ddad195fa\",\"dweb:/ipfs/QmaXjmpYBENo6n9uddeJ9QCjGiXTTVWeimHQ5w8J8miCwu\"]},\"/Users/varunvruddhula/hashflowToken/contracts/protocol/interfaces/IERC20.sol\":{\"keccak256\":\"0x9d8e1cc6c6fecadc07c111708c077572a6635860d1cefc23249b46ef1a8e8639\",\"urls\":[\"bzzr://b92064eea5e66daa08bfffb4a51a64aa47b32c149895821f62a67d46f582869f\",\"dweb:/ipfs/QmV6rAcA1BcwhDhHfsiY5MT8CT2q68TS7Zrok86jC32b5w\"]},\"/Users/varunvruddhula/hashflowToken/contracts/protocol/lib/SafeMath.sol\":{\"keccak256\":\"0xd87d44ae3923cb2e0744dcfc632c1f1919ff5b6848e0803ad1c481f90c57dc17\",\"urls\":[\"bzzr://510ce4ac227823b5d5b3a243167daaac27717762bf301df6886fc6ba4a893c30\",\"dweb:/ipfs/QmfJWcFpt2RBR4t3mCnH8THJBiPc4Zc3pXi5EasaMV3yNp\"]},\"/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x9216fc6215afd1899ee52394fc71804a1cd5f18f068adb9ce52b1a30e2a2937e\",\"urls\":[\"bzzr://a075a2bcd45756baa6d71c9c2b2aac8231bb54e5bbf31b1f27b043b59fd0bb9f\",\"dweb:/ipfs/QmQ6raXdXufAsBeSLA1rLj7krJxKqDZWa8cReBhuzSGNTQ\"]},\"/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0x6f5cf24864ebad8d132be9aecb4c55ebb620e0081ba67099752cf72e272e72f1\",\"urls\":[\"bzzr://60f6416925e83165450216811ab777536ad41962209045cba416a14387f44644\",\"dweb:/ipfs/QmT7j8WevAvy15uquy4S97qtpbLM1YeRtvMv8kxLoGS7Gu\"]},\"/Users/varunvruddhula/hashflowToken/contracts/protocol/token/HashflowToken.sol\":{\"keccak256\":\"0xfb583e6e370137557d564ee14871392b5ba3c53dbce41455bfbfe90612100281\",\"urls\":[\"bzzr://b630c22c81175c8f5a014a95804a8f05e8560db4611db3de6cc247594550a223\",\"dweb:/ipfs/QmTrJiKX1JHjFWyeQFg2cwdeqCaJ2KUPKHk1r7WdTs4rcG\"]}},\"version\":1}",
    "bytecode": "0x60806040526b204fce5e3e2502611000000060065534801561002057600080fd5b506040518060400160405280600d81526020017f48617368666c6f77546f6b656e000000000000000000000000000000000000008152506040518060400160405280600381526020017f4846540000000000000000000000000000000000000000000000000000000000815250601282600390805190602001906100a59291906100e7565b5081516100b99060049060208501906100e7565b506005805460ff191660ff929092169190911761010060a860020a0319166101003302179055506101829050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012857805160ff1916838001178555610155565b82800160010185558215610155579182015b8281111561015557825182559160200191906001019061013a565b50610161929150610165565b5090565b61017f91905b80821115610161576000815560010161016b565b90565b610dc9806101916000396000f3fe608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100b4578063a457c2d711610083578063a457c2d714610339578063a9059cbb14610372578063dd62ed3e146103ab578063f2fde38b146103e65761011d565b806370a08231146102b05780638da5cb5b146102e357806395d89b4114610314578063a0712d681461031c5761011d565b80632e0f2625116100f05780632e0f262514610249578063313ce56714610267578063355274ea1461026f57806339509351146102775761011d565b806306fdde0314610122578063095ea7b31461019f57806318160ddd146101ec57806323b872dd14610206575b600080fd5b61012a61041b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d8600480360360408110156101b557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104cf565b604080519115158252519081900360200190f35b6101f46104e5565b60408051918252519081900360200190f35b6101d86004803603606081101561021c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104eb565b61025161054f565b6040805160ff9092168252519081900360200190f35b610251610554565b6101f461055d565b6101d86004803603604081101561028d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610563565b6101f4600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105ac565b6102eb6105d4565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61012a6105f5565b6101d86004803603602081101561033257600080fd5b5035610674565b6101d86004803603604081101561034f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561073a565b6101d86004803603604081101561038857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610783565b6101f4600480360360408110156103c157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610790565b610419600480360360208110156103fc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107c8565b005b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc3384846108a9565b50600192915050565b60025490565b60006104f88484846109f0565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033808552925290912054610545918691610540908663ffffffff610ba716565b6108a9565b5060019392505050565b601281565b60055460ff1690565b60065490565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916104dc918590610540908663ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104c55780601f1061049a576101008083540402835291602001916104c5565b600554600090610100900473ffffffffffffffffffffffffffffffffffffffff1633146106a057600080fd5b6006546106bb836106af6104e5565b9063ffffffff610bbc16565b111561072857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6107323383610bd5565b506001919050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916104dc918590610540908663ffffffff610ba716565b60006104dc3384846109f0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1633146107f157600080fd5b73ffffffffffffffffffffffffffffffffffffffff811661081157600080fd5b60055460405173ffffffffffffffffffffffffffffffffffffffff80841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610915576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610d716024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d2a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d4c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d076023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054610afe908263ffffffff610ba716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610b40908263ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610bb657600080fd5b50900390565b600082820183811015610bce57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610c5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c6a908263ffffffff610bbc16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610ca3908263ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7230582049e7af0648cc912b1e8d9706c53fe8fee6a483c267d895a9f5200c4996976e6864736f6c634300050a0032",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100b4578063a457c2d711610083578063a457c2d714610339578063a9059cbb14610372578063dd62ed3e146103ab578063f2fde38b146103e65761011d565b806370a08231146102b05780638da5cb5b146102e357806395d89b4114610314578063a0712d681461031c5761011d565b80632e0f2625116100f05780632e0f262514610249578063313ce56714610267578063355274ea1461026f57806339509351146102775761011d565b806306fdde0314610122578063095ea7b31461019f57806318160ddd146101ec57806323b872dd14610206575b600080fd5b61012a61041b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d8600480360360408110156101b557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104cf565b604080519115158252519081900360200190f35b6101f46104e5565b60408051918252519081900360200190f35b6101d86004803603606081101561021c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104eb565b61025161054f565b6040805160ff9092168252519081900360200190f35b610251610554565b6101f461055d565b6101d86004803603604081101561028d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610563565b6101f4600480360360208110156102c657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105ac565b6102eb6105d4565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61012a6105f5565b6101d86004803603602081101561033257600080fd5b5035610674565b6101d86004803603604081101561034f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561073a565b6101d86004803603604081101561038857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610783565b6101f4600480360360408110156103c157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610790565b610419600480360360208110156103fc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107c8565b005b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc3384846108a9565b50600192915050565b60025490565b60006104f88484846109f0565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033808552925290912054610545918691610540908663ffffffff610ba716565b6108a9565b5060019392505050565b601281565b60055460ff1690565b60065490565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916104dc918590610540908663ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104c55780601f1061049a576101008083540402835291602001916104c5565b600554600090610100900473ffffffffffffffffffffffffffffffffffffffff1633146106a057600080fd5b6006546106bb836106af6104e5565b9063ffffffff610bbc16565b111561072857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b6107323383610bd5565b506001919050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916104dc918590610540908663ffffffff610ba716565b60006104dc3384846109f0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600554610100900473ffffffffffffffffffffffffffffffffffffffff1633146107f157600080fd5b73ffffffffffffffffffffffffffffffffffffffff811661081157600080fd5b60055460405173ffffffffffffffffffffffffffffffffffffffff80841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610915576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610d716024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d2a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d4c6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d076023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054610afe908263ffffffff610ba716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610b40908263ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610bb657600080fd5b50900390565b600082820183811015610bce57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610c5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c6a908263ffffffff610bbc16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610ca3908263ffffffff610bbc16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7230582049e7af0648cc912b1e8d9706c53fe8fee6a483c267d895a9f5200c4996976e6864736f6c634300050a0032",
    "sourceMap": "379:847:7:-;;;505:39;483:61;;686:72;5:2:-1;;;;30:1;27;20:12;5:2;686:72:7;448:163:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;475:2:7;544:4:6;536:5;:12;;;;;;;;;;;;:::i;:::-;-1:-1:-1;558:16:6;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;584:9:6;:20;;-1:-1:-1;;584:20:6;;;;;;;;;;-1:-1:-1;;;;;;496:18:1;584:20:6;504:10:1;496:18;;;;-1:-1:-1;379:847:7;;-1:-1:-1;379:847:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;379:847:7;;;-1:-1:-1;379:847:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
    "deployedSourceMap": "379:847:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;379:847:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;676:81:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;676:81:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2503:145:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2503:145:5;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1564:89;;;:::i;:::-;;;;;;;;;;;;;;;;3105:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3105:252:5;;;;;;;;;;;;;;;;;;:::i;442:35:7:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1510:81:6;;;:::i;837:72:7:-;;;:::i;3752:203:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3752:203:5;;;;;;;;;:::i;1711:108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1711:108:5;;;;:::i;237:20:1:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;870:85:6;;;:::i;1019:205:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1019:205:7;;:::i;4442:213:5:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4442:213:5;;;;;;;;;:::i;2022:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2022:153:5;;;;;;;;;:::i;2233:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2233:132:5;;;;;;;;;;;:::i;827:174:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;827:174:1;;;;:::i;:::-;;676:81:6;745:5;738:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;713:13;;738:12;;745:5;;738:12;;745:5;738:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;676:81;:::o;2503:145:5:-;2568:4;2584:36;2593:10;2605:7;2614:5;2584:8;:36::i;:::-;-1:-1:-1;2637:4:5;2503:145;;;;:::o;1564:89::-;1634:12;;1564:89;:::o;3105:252::-;3194:4;3210:36;3220:6;3228:9;3239:6;3210:9;:36::i;:::-;3285:19;;;;;;;:11;:19;;;;;;;;3273:10;3285:31;;;;;;;;;3256:73;;3265:6;;3285:43;;3321:6;3285:43;:35;:43;:::i;:::-;3256:8;:73::i;:::-;-1:-1:-1;3346:4:5;3105:252;;;;;:::o;442:35:7:-;475:2;442:35;:::o;1510:81:6:-;1575:9;;;;1510:81;:::o;837:72:7:-;899:3;;837:72;:::o;3752:203:5:-;3857:10;3832:4;3878:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;3832:4;;3848:79;;3869:7;;3878:48;;3915:10;3878:48;:36;:48;:::i;1711:108::-;1794:18;;1768:7;1794:18;;;;;;;;;;;;1711:108::o;237:20:1:-;;;;;;;;;:::o;870:85:6:-;941:7;934:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;909:13;;934:14;;941:7;;934:14;;941:7;934:14;;;;;;;;;;;;;;;;;;;;;;;;1019:205:7;648:5:1;;1075:4:7;;648:5:1;;;;;634:10;:19;626:28;;;;;;1128:3:7;;1099:25;1117:6;1099:13;:11;:13::i;:::-;:17;:25;:17;:25;:::i;:::-;:32;;1091:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1171:25;1177:10;1189:6;1171:5;:25::i;:::-;-1:-1:-1;1213:4:7;1019:205;;;:::o;4442:213:5:-;4552:10;4527:4;4573:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;4527:4;;4543:84;;4564:7;;4573:53;;4610:15;4573:53;:36;:53;:::i;2022:153::-;2091:4;2107:40;2117:10;2129:9;2140:6;2107:9;:40::i;2233:132::-;2331:18;;;;2305:7;2331:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2233:132::o;827:174:1:-;648:5;;;;;;;634:10;:19;626:28;;;;;;903:22;;;895:31;;;;;;958:5;;937:37;;;;;;;958:5;;;;;937:37;;;;;980:5;:16;;;;;;;;;;;;;;;;;;827:174::o;6548:329:5:-;6640:19;;;6632:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6718:21;;;6710:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6789:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;6839:31;;;;;;;;;;;;;;;;;6548:329;;;:::o;5129:422::-;5226:20;;;5218:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5306:23;;;5298:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5400:17;;;:9;:17;;;;;;;;;;;:29;;5422:6;5400:29;:21;:29;:::i;:::-;5380:17;;;;:9;:17;;;;;;;;;;;:49;;;;5462:20;;;;;;;:32;;5487:6;5462:32;:24;:32;:::i;:::-;5439:20;;;;:9;:20;;;;;;;;;;;;:55;;;;5509:35;;;;;;;5439:20;;5509:35;;;;;;;;;;;;;5129:422;;;:::o;1078:131:3:-;1136:7;1164:1;1159;:6;;1151:15;;;;;;-1:-1:-1;1184:5:3;;;1078:131::o;1272:::-;1330:7;1357:5;;;1376:6;;;;1368:15;;;;;;1397:1;1272:131;-1:-1:-1;;;1272:131:3:o;5821:302:5:-;5896:21;;;5888:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:12;;:24;;5996:6;5979:24;:16;:24;:::i;:::-;5964:12;:39;6034:18;;;:9;:18;;;;;;;;;;;:30;;6057:6;6034:30;:22;:30;:::i;:::-;6013:18;;;:9;:18;;;;;;;;;;;:51;;;;6079:37;;;;;;;6013:18;;:9;;6079:37;;;;;;;;;;5821:302;;:::o",
    "source": "pragma solidity 0.5.10;\n\nimport { ERC20 } from \"./ERC20/ERC20.sol\";\nimport { ERC20Detailed } from \"./ERC20/ERC20Detailed.sol\";\nimport { Ownable } from  \"../access/Ownable.sol\";\n\n\n/**\n * @dev Extension of `ERC20` that only allows owner,\n * who has permission to mint (create) new tokens as they see fit.\n *\n * At construction, the deployer of the contract is the only minter.\n */\ncontract HashflowToken is ERC20, ERC20Detailed, Ownable {\n\n    uint8 public constant DECIMALS = 18;\n    uint256 private CAP = 10000000000 * (10 ** uint256(DECIMALS));\n\n\n    /**\n     * @dev Sets the value of the `cap`. This value is immutable, it can only be\n     * set once during construction.\n     */\n    constructor () public ERC20Detailed(\"HashflowToken\", \"HFT\", DECIMALS) {}\n\n    /**\n     * @dev Returns the cap on the token's total supply.\n     */\n    function cap() public view returns (uint256) {\n        return CAP;\n    }\n\n    /**\n     * @dev\n     *\n     * Requirements:\n     *\n     * - the caller must be the `Owner'.\n     */\n    function mint(uint256 amount) public onlyOwner returns (bool) {\n        require(totalSupply().add(amount) <= CAP, \"ERC20Capped: cap exceeded\");\n        _mint(msg.sender, amount);\n        return true;\n    }\n}",
    "sourcePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/HashflowToken.sol",
    "ast": {
        "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/HashflowToken.sol",
        "exportedSymbols": {
            "HashflowToken": [
                940
            ]
        },
        "id": 941,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 868,
                "literals": [
                    "solidity",
                    "0.5",
                    ".10"
                ],
                "nodeType": "PragmaDirective",
                "src": "0:23:7"
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20.sol",
                "file": "./ERC20/ERC20.sol",
                "id": 870,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 808,
                "src": "25:42:7",
                "symbolAliases": [
                    {
                        "foreign": 869,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20Detailed.sol",
                "file": "./ERC20/ERC20Detailed.sol",
                "id": 872,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 867,
                "src": "68:58:7",
                "symbolAliases": [
                    {
                        "foreign": 871,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/access/Ownable.sol",
                "file": "../access/Ownable.sol",
                "id": 874,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 113,
                "src": "127:49:7",
                "symbolAliases": [
                    {
                        "foreign": 873,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 875,
                            "name": "ERC20",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 807,
                            "src": "405:5:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$807",
                                "typeString": "contract ERC20"
                            }
                        },
                        "id": 876,
                        "nodeType": "InheritanceSpecifier",
                        "src": "405:5:7"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 877,
                            "name": "ERC20Detailed",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 866,
                            "src": "412:13:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20Detailed_$866",
                                "typeString": "contract ERC20Detailed"
                            }
                        },
                        "id": 878,
                        "nodeType": "InheritanceSpecifier",
                        "src": "412:13:7"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 879,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 112,
                            "src": "427:7:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$112",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 880,
                        "nodeType": "InheritanceSpecifier",
                        "src": "427:7:7"
                    }
                ],
                "contractDependencies": [
                    112,
                    196,
                    807,
                    866
                ],
                "contractKind": "contract",
                "documentation": "@dev Extension of `ERC20` that only allows owner,\nwho has permission to mint (create) new tokens as they see fit.\n * At construction, the deployer of the contract is the only minter.",
                "fullyImplemented": true,
                "id": 940,
                "linearizedBaseContracts": [
                    940,
                    112,
                    866,
                    807,
                    196
                ],
                "name": "HashflowToken",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "constant": true,
                        "id": 883,
                        "name": "DECIMALS",
                        "nodeType": "VariableDeclaration",
                        "scope": 940,
                        "src": "442:35:7",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                        },
                        "typeName": {
                            "id": 881,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "442:5:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                            }
                        },
                        "value": {
                            "argumentTypes": null,
                            "hexValue": "3138",
                            "id": 882,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "475:2:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_18_by_1",
                                "typeString": "int_const 18"
                            },
                            "value": "18"
                        },
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 893,
                        "name": "CAP",
                        "nodeType": "VariableDeclaration",
                        "scope": 940,
                        "src": "483:61:7",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 884,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "483:7:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "argumentTypes": null,
                            "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            },
                            "id": 892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                                "argumentTypes": null,
                                "hexValue": "3130303030303030303030",
                                "id": 885,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "505:11:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_10000000000_by_1",
                                    "typeString": "int_const 10000000000"
                                },
                                "value": "10000000000"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                                "argumentTypes": null,
                                "components": [
                                    {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 890,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3130",
                                            "id": 886,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "520:2:7",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_10_by_1",
                                                "typeString": "int_const 10"
                                            },
                                            "value": "10"
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "**",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 888,
                                                    "name": "DECIMALS",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 883,
                                                    "src": "534:8:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    }
                                                ],
                                                "id": 887,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "526:7:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint256_$",
                                                    "typeString": "type(uint256)"
                                                },
                                                "typeName": "uint256"
                                            },
                                            "id": 889,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "526:17:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "520:23:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 891,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "519:25:7",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            },
                            "src": "505:39:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 901,
                            "nodeType": "Block",
                            "src": "756:2:7",
                            "statements": []
                        },
                        "documentation": "@dev Sets the value of the `cap`. This value is immutable, it can only be\nset once during construction.",
                        "id": 902,
                        "implemented": true,
                        "kind": "constructor",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "hexValue": "48617368666c6f77546f6b656e",
                                        "id": 896,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "722:15:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_41a7e1610a093c74890f63715e183ea3ab371117b372d00f6c097a18d0edea52",
                                            "typeString": "literal_string \"HashflowToken\""
                                        },
                                        "value": "HashflowToken"
                                    },
                                    {
                                        "argumentTypes": null,
                                        "hexValue": "484654",
                                        "id": 897,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "739:5:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_a56d4dbcf3aa02450e8cc3845cc50495346ea42d682351ec2f48a63104674cca",
                                            "typeString": "literal_string \"HFT\""
                                        },
                                        "value": "HFT"
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 898,
                                        "name": "DECIMALS",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 883,
                                        "src": "746:8:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    }
                                ],
                                "id": 899,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 895,
                                    "name": "ERC20Detailed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 866,
                                    "src": "708:13:7",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$866_$",
                                        "typeString": "type(contract ERC20Detailed)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "708:47:7"
                            }
                        ],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 894,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "698:2:7"
                        },
                        "returnParameters": {
                            "id": 900,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "756:0:7"
                        },
                        "scope": 940,
                        "src": "686:72:7",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 909,
                            "nodeType": "Block",
                            "src": "882:27:7",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 907,
                                        "name": "CAP",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 893,
                                        "src": "899:3:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 906,
                                    "id": 908,
                                    "nodeType": "Return",
                                    "src": "892:10:7"
                                }
                            ]
                        },
                        "documentation": "@dev Returns the cap on the token's total supply.",
                        "id": 910,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "cap",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 903,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "849:2:7"
                        },
                        "returnParameters": {
                            "id": 906,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 905,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 910,
                                    "src": "873:7:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 904,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "873:7:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "872:9:7"
                        },
                        "scope": 940,
                        "src": "837:72:7",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 938,
                            "nodeType": "Block",
                            "src": "1081:143:7",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 926,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 923,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 912,
                                                            "src": "1117:6:7",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [],
                                                            "expression": {
                                                                "argumentTypes": [],
                                                                "id": 920,
                                                                "name": "totalSupply",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 510,
                                                                "src": "1099:11:7",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                                                    "typeString": "function () view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 921,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "1099:13:7",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 922,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "add",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 303,
                                                        "src": "1099:17:7",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 924,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1099:25:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "<=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 925,
                                                    "name": "CAP",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 893,
                                                    "src": "1128:3:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "1099:32:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "45524332304361707065643a20636170206578636565646564",
                                                "id": 927,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1133:27:7",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c0532a65ade852f12d67926b1625bbc98f7eb7c650703bf531fd4e07ded2c49f",
                                                    "typeString": "literal_string \"ERC20Capped: cap exceeded\""
                                                },
                                                "value": "ERC20Capped: cap exceeded"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c0532a65ade852f12d67926b1625bbc98f7eb7c650703bf531fd4e07ded2c49f",
                                                    "typeString": "literal_string \"ERC20Capped: cap exceeded\""
                                                }
                                            ],
                                            "id": 919,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                958,
                                                959
                                            ],
                                            "referencedDeclaration": 959,
                                            "src": "1091:7:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 928,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1091:70:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 929,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1091:70:7"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 931,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 955,
                                                    "src": "1177:3:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 932,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "1177:10:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 933,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 912,
                                                "src": "1189:6:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 930,
                                            "name": "_mint",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 764,
                                            "src": "1171:5:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 934,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1171:25:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 935,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1171:25:7"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 936,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1213:4:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 918,
                                    "id": 937,
                                    "nodeType": "Return",
                                    "src": "1206:11:7"
                                }
                            ]
                        },
                        "documentation": "@dev\n     * Requirements:\n     * - the caller must be the `Owner'.",
                        "id": 939,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 915,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 914,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 86,
                                    "src": "1056:9:7",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "1056:9:7"
                            }
                        ],
                        "name": "mint",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 913,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 912,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 939,
                                    "src": "1033:14:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 911,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1033:7:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1032:16:7"
                        },
                        "returnParameters": {
                            "id": 918,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 917,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 939,
                                    "src": "1075:4:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 916,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1075:4:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1074:6:7"
                        },
                        "scope": 940,
                        "src": "1019:205:7",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    }
                ],
                "scope": 941,
                "src": "379:847:7"
            }
        ],
        "src": "0:1226:7"
    },
    "legacyAST": {
        "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/HashflowToken.sol",
        "exportedSymbols": {
            "HashflowToken": [
                940
            ]
        },
        "id": 941,
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 868,
                "literals": [
                    "solidity",
                    "0.5",
                    ".10"
                ],
                "nodeType": "PragmaDirective",
                "src": "0:23:7"
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20.sol",
                "file": "./ERC20/ERC20.sol",
                "id": 870,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 808,
                "src": "25:42:7",
                "symbolAliases": [
                    {
                        "foreign": 869,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/token/ERC20/ERC20Detailed.sol",
                "file": "./ERC20/ERC20Detailed.sol",
                "id": 872,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 867,
                "src": "68:58:7",
                "symbolAliases": [
                    {
                        "foreign": 871,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "absolutePath": "/Users/varunvruddhula/hashflowToken/contracts/protocol/access/Ownable.sol",
                "file": "../access/Ownable.sol",
                "id": 874,
                "nodeType": "ImportDirective",
                "scope": 941,
                "sourceUnit": 113,
                "src": "127:49:7",
                "symbolAliases": [
                    {
                        "foreign": 873,
                        "local": null
                    }
                ],
                "unitAlias": ""
            },
            {
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 875,
                            "name": "ERC20",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 807,
                            "src": "405:5:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20_$807",
                                "typeString": "contract ERC20"
                            }
                        },
                        "id": 876,
                        "nodeType": "InheritanceSpecifier",
                        "src": "405:5:7"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 877,
                            "name": "ERC20Detailed",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 866,
                            "src": "412:13:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20Detailed_$866",
                                "typeString": "contract ERC20Detailed"
                            }
                        },
                        "id": 878,
                        "nodeType": "InheritanceSpecifier",
                        "src": "412:13:7"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 879,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 112,
                            "src": "427:7:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$112",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 880,
                        "nodeType": "InheritanceSpecifier",
                        "src": "427:7:7"
                    }
                ],
                "contractDependencies": [
                    112,
                    196,
                    807,
                    866
                ],
                "contractKind": "contract",
                "documentation": "@dev Extension of `ERC20` that only allows owner,\nwho has permission to mint (create) new tokens as they see fit.\n * At construction, the deployer of the contract is the only minter.",
                "fullyImplemented": true,
                "id": 940,
                "linearizedBaseContracts": [
                    940,
                    112,
                    866,
                    807,
                    196
                ],
                "name": "HashflowToken",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "constant": true,
                        "id": 883,
                        "name": "DECIMALS",
                        "nodeType": "VariableDeclaration",
                        "scope": 940,
                        "src": "442:35:7",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                        },
                        "typeName": {
                            "id": 881,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "442:5:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                            }
                        },
                        "value": {
                            "argumentTypes": null,
                            "hexValue": "3138",
                            "id": 882,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "475:2:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_18_by_1",
                                "typeString": "int_const 18"
                            },
                            "value": "18"
                        },
                        "visibility": "public"
                    },
                    {
                        "constant": false,
                        "id": 893,
                        "name": "CAP",
                        "nodeType": "VariableDeclaration",
                        "scope": 940,
                        "src": "483:61:7",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 884,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "483:7:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "argumentTypes": null,
                            "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            },
                            "id": 892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                                "argumentTypes": null,
                                "hexValue": "3130303030303030303030",
                                "id": 885,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "505:11:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_10000000000_by_1",
                                    "typeString": "int_const 10000000000"
                                },
                                "value": "10000000000"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                                "argumentTypes": null,
                                "components": [
                                    {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 890,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3130",
                                            "id": 886,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "520:2:7",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_10_by_1",
                                                "typeString": "int_const 10"
                                            },
                                            "value": "10"
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "**",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "id": 888,
                                                    "name": "DECIMALS",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 883,
                                                    "src": "534:8:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    }
                                                ],
                                                "id": 887,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "526:7:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint256_$",
                                                    "typeString": "type(uint256)"
                                                },
                                                "typeName": "uint256"
                                            },
                                            "id": 889,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "526:17:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "520:23:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 891,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "519:25:7",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            },
                            "src": "505:39:7",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 901,
                            "nodeType": "Block",
                            "src": "756:2:7",
                            "statements": []
                        },
                        "documentation": "@dev Sets the value of the `cap`. This value is immutable, it can only be\nset once during construction.",
                        "id": 902,
                        "implemented": true,
                        "kind": "constructor",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "hexValue": "48617368666c6f77546f6b656e",
                                        "id": 896,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "722:15:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_41a7e1610a093c74890f63715e183ea3ab371117b372d00f6c097a18d0edea52",
                                            "typeString": "literal_string \"HashflowToken\""
                                        },
                                        "value": "HashflowToken"
                                    },
                                    {
                                        "argumentTypes": null,
                                        "hexValue": "484654",
                                        "id": 897,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "739:5:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_a56d4dbcf3aa02450e8cc3845cc50495346ea42d682351ec2f48a63104674cca",
                                            "typeString": "literal_string \"HFT\""
                                        },
                                        "value": "HFT"
                                    },
                                    {
                                        "argumentTypes": null,
                                        "id": 898,
                                        "name": "DECIMALS",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 883,
                                        "src": "746:8:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    }
                                ],
                                "id": 899,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 895,
                                    "name": "ERC20Detailed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 866,
                                    "src": "708:13:7",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$866_$",
                                        "typeString": "type(contract ERC20Detailed)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "708:47:7"
                            }
                        ],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 894,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "698:2:7"
                        },
                        "returnParameters": {
                            "id": 900,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "756:0:7"
                        },
                        "scope": 940,
                        "src": "686:72:7",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 909,
                            "nodeType": "Block",
                            "src": "882:27:7",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 907,
                                        "name": "CAP",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 893,
                                        "src": "899:3:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 906,
                                    "id": 908,
                                    "nodeType": "Return",
                                    "src": "892:10:7"
                                }
                            ]
                        },
                        "documentation": "@dev Returns the cap on the token's total supply.",
                        "id": 910,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "cap",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 903,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "849:2:7"
                        },
                        "returnParameters": {
                            "id": 906,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 905,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 910,
                                    "src": "873:7:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 904,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "873:7:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "872:9:7"
                        },
                        "scope": 940,
                        "src": "837:72:7",
                        "stateMutability": "view",
                        "superFunction": null,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 938,
                            "nodeType": "Block",
                            "src": "1081:143:7",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 926,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 923,
                                                            "name": "amount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 912,
                                                            "src": "1117:6:7",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [],
                                                            "expression": {
                                                                "argumentTypes": [],
                                                                "id": 920,
                                                                "name": "totalSupply",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 510,
                                                                "src": "1099:11:7",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                                                    "typeString": "function () view returns (uint256)"
                                                                }
                                                            },
                                                            "id": 921,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "1099:13:7",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 922,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "add",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 303,
                                                        "src": "1099:17:7",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 924,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1099:25:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "<=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 925,
                                                    "name": "CAP",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 893,
                                                    "src": "1128:3:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "1099:32:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "45524332304361707065643a20636170206578636565646564",
                                                "id": 927,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1133:27:7",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c0532a65ade852f12d67926b1625bbc98f7eb7c650703bf531fd4e07ded2c49f",
                                                    "typeString": "literal_string \"ERC20Capped: cap exceeded\""
                                                },
                                                "value": "ERC20Capped: cap exceeded"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c0532a65ade852f12d67926b1625bbc98f7eb7c650703bf531fd4e07ded2c49f",
                                                    "typeString": "literal_string \"ERC20Capped: cap exceeded\""
                                                }
                                            ],
                                            "id": 919,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                958,
                                                959
                                            ],
                                            "referencedDeclaration": 959,
                                            "src": "1091:7:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 928,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1091:70:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 929,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1091:70:7"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 931,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 955,
                                                    "src": "1177:3:7",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 932,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "1177:10:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 933,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 912,
                                                "src": "1189:6:7",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 930,
                                            "name": "_mint",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 764,
                                            "src": "1171:5:7",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256)"
                                            }
                                        },
                                        "id": 934,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1171:25:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 935,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1171:25:7"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 936,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1213:4:7",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "true"
                                    },
                                    "functionReturnParameters": 918,
                                    "id": 937,
                                    "nodeType": "Return",
                                    "src": "1206:11:7"
                                }
                            ]
                        },
                        "documentation": "@dev\n     * Requirements:\n     * - the caller must be the `Owner'.",
                        "id": 939,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 915,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 914,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 86,
                                    "src": "1056:9:7",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "1056:9:7"
                            }
                        ],
                        "name": "mint",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 913,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 912,
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 939,
                                    "src": "1033:14:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 911,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1033:7:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1032:16:7"
                        },
                        "returnParameters": {
                            "id": 918,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 917,
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 939,
                                    "src": "1075:4:7",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 916,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1075:4:7",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1074:6:7"
                        },
                        "scope": 940,
                        "src": "1019:205:7",
                        "stateMutability": "nonpayable",
                        "superFunction": null,
                        "visibility": "public"
                    }
                ],
                "scope": 941,
                "src": "379:847:7"
            }
        ],
        "src": "0:1226:7"
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.10+commit.5a6ea5b1.Linux.g++"
    },
    "networks": {
        "42": {
            "events": {
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "from",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "to",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "name": "Transfer",
                    "type": "event"
                },
                "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "spender",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "name": "Approval",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x85755A7cf6a45E484525a09B13D1DaDf70F50301",
            "transactionHash": "0x8ce3066893d1716d4db0dea7a86824bda67e77edc31ab8a8e65383c5565485d3"
        },
        "1001": {
            "events": {
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "from",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "to",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "name": "Transfer",
                    "type": "event"
                },
                "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "name": "spender",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "name": "value",
                            "type": "uint256"
                        }
                    ],
                    "name": "Approval",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xD833215cBcc3f914bD1C9ece3EE7BF8B14f841bb",
            "transactionHash": "0xafab05c47564b26ac9655bee1f44f3988c0c2e92ec0b802c3cfecf62c4128f5e"
        }
    },
    "schemaVersion": "3.2.3",
    "updatedAt": "2020-08-18T17:24:56.117Z",
    "networkType": "ethereum",
    "devdoc": {
        "details": "Extension of `ERC20` that only allows owner, who has permission to mint (create) new tokens as they see fit. * At construction, the deployer of the contract is the only minter.",
        "methods": {
            "allowance(address,address)": {
                "details": "See `IERC20.allowance`."
            },
            "approve(address,uint256)": {
                "details": "See `IERC20.approve`.     * Requirements:     * - `spender` cannot be the zero address."
            },
            "balanceOf(address)": {
                "details": "See `IERC20.balanceOf`."
            },
            "cap()": {
                "details": "Returns the cap on the token's total supply."
            },
            "constructor": {
                "details": "Sets the value of the `cap`. This value is immutable, it can only be set once during construction."
            },
            "decimals()": {
                "details": "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.     * > Note that 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`."
            },
            "decreaseAllowance(address,uint256)": {
                "details": "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`."
            },
            "increaseAllowance(address,uint256)": {
                "details": "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."
            },
            "mint(uint256)": {
                "details": "* Requirements:     * - the caller must be the `Owner'."
            },
            "name()": {
                "details": "Returns the name of the token."
            },
            "symbol()": {
                "details": "Returns the symbol of the token, usually a shorter version of the name."
            },
            "totalSupply()": {
                "details": "See `IERC20.totalSupply`."
            },
            "transfer(address,uint256)": {
                "details": "See `IERC20.transfer`.     * Requirements:     * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
            },
            "transferFrom(address,address,uint256)": {
                "details": "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 `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`."
            },
            "transferOwnership(address)": {
                "details": "Allows the current owner to transfer control of the contract to a newOwner.",
                "params": {
                    "newOwner": "The address to transfer ownership to."
                }
            }
        }
    },
    "userdoc": {
        "methods": {}
    }
}
