{
  "Claimable": {
    "abi": [
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "previousOwner",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "name": "OwnershipTransferred",
        "type": "event"
      },
      {
        "inputs": [],
        "name": "claimOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "owner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "pendingOwner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_newOwner",
            "type": "address"
          }
        ],
        "name": "transferOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      }
    ],
    "evm": {
      "bytecode": {
        "object": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610217806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634e71e0c8146100515780638da5cb5b1461005b578063e30c397814610079578063f2fde38b14610081575b600080fd5b610059610094565b005b610063610124565b60405161007091906101bc565b60405180910390f35b610063610133565b61005961008f36600461018e565b610142565b6001546001600160a01b031633146100c75760405162461bcd60e51b81526004016100be906101d0565b60405180910390fd5b60008054600180546001600160a01b038082166001600160a01b03198086169190911780875592169092556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b0316331461016c5760405162461bcd60e51b81526004016100be906101d0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561019f578081fd5b81356001600160a01b03811681146101b5578182fd5b9392505050565b6001600160a01b0391909116815260200190565b60208082526000908201526040019056fea2646970667358221220d5b39c7c533f78d10d72a0eb4016c665436498b2de9a2269fe19f4c304a221c064736f6c63430008000033"
      },
      "methodIdentifiers": {
        "claimOwnership()": "4e71e0c8",
        "owner()": "8da5cb5b",
        "pendingOwner()": "e30c3978",
        "transferOwnership(address)": "f2fde38b"
      }
    },
    "metadata": {
      "compiler": {
        "version": "0.8.0+commit.c7dfd78e"
      },
      "language": "Solidity",
      "output": {
        "abi": [
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "previousOwner",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
              }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
          },
          {
            "inputs": [],
            "name": "claimOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "owner",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "pendingOwner",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_newOwner",
                "type": "address"
              }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          }
        ],
        "devdoc": {
          "details": "The contract has an owner address, and provides basic authorization control whitch simplifies the implementation of user permissions. This contract is based on the source code at goo.gl/CfEAkv and upgrades Ownable contracts with additional claim step which makes ownership transfers less prone to errors.",
          "kind": "dev",
          "methods": {
            "claimOwnership()": {
              "details": "Allows the current pending owner to claim the ownership of the contract. It emits OwnershipTransferred event and resets pending owner to 0."
            },
            "transferOwnership(address)": {
              "details": "Allows the current owner to give new owner ability to claim the ownership of the contract. This differs from the Owner's function in that it allows setting pedingOwner address to 0x0, which effectively cancels an active claim.",
              "params": {
                "_newOwner": "The address which can claim ownership of the contract."
              }
            }
          },
          "version": 1
        },
        "userdoc": {
          "kind": "user",
          "methods": {},
          "version": 1
        }
      },
      "settings": {
        "compilationTarget": {
          "./src/tests/mocks/zxc-mock.sol": "Claimable"
        },
        "evmVersion": "istanbul",
        "libraries": {},
        "metadata": {
          "bytecodeHash": "ipfs"
        },
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "remappings": []
      },
      "sources": {
        "./src/tests/mocks/zxc-mock.sol": {
          "keccak256": "0x634eb4521e64b1df18fbd4ea62183f2d83500a3de5d188b81ba6bde8d14c1640",
          "license": "MIT",
          "urls": [
            "bzz-raw://d7fab3e16fbba0fcc98c8bd99c924de1c65615cbcc8232174e8ce60794c81a20",
            "dweb:/ipfs/QmWphSBKPJhoHX58rDVzLWLa8UNYq6vTokdzLBDofVTCeP"
          ]
        }
      },
      "version": 1
    }
  },
  "Ownable": {
    "abi": [
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "constructor"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "previousOwner",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "name": "OwnershipTransferred",
        "type": "event"
      },
      {
        "inputs": [],
        "name": "owner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_newOwner",
            "type": "address"
          }
        ],
        "name": "transferOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      }
    ],
    "evm": {
      "bytecode": {
        "object": "608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101ba806100326000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063f2fde38b14610059575b600080fd5b61004361006e565b604051610050919061015f565b60405180910390f35b61006c610067366004610131565b61007d565b005b6000546001600160a01b031681565b6000546001600160a01b031633146100b05760405162461bcd60e51b81526004016100a790610173565b60405180910390fd5b6001600160a01b0381166100d65760405162461bcd60e51b81526004016100a790610173565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610142578081fd5b81356001600160a01b0381168114610158578182fd5b9392505050565b6001600160a01b0391909116815260200190565b60208082526000908201526040019056fea2646970667358221220c80690434641582ebf04a588afe94e9dcd658e9eeba628d6424dc6281597325f64736f6c63430008000033"
      },
      "methodIdentifiers": {
        "owner()": "8da5cb5b",
        "transferOwnership(address)": "f2fde38b"
      }
    },
    "metadata": {
      "compiler": {
        "version": "0.8.0+commit.c7dfd78e"
      },
      "language": "Solidity",
      "output": {
        "abi": [
          {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "previousOwner",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
              }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
          },
          {
            "inputs": [],
            "name": "owner",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_newOwner",
                "type": "address"
              }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          }
        ],
        "devdoc": {
          "details": "The contract has an owner address, and provides basic authorization control whitch simplifies the implementation of user permissions. This contract is based on the source code at https://goo.gl/n2ZGVt.",
          "events": {
            "OwnershipTransferred(address,address)": {
              "details": "An event which is triggered when the owner is changed.",
              "params": {
                "newOwner": "The address of the new owner.",
                "previousOwner": "The address of the previous owner."
              }
            }
          },
          "kind": "dev",
          "methods": {
            "constructor": {
              "details": "The constructor sets the original `owner` of the contract to the sender account."
            },
            "transferOwnership(address)": {
              "details": "Allows the current owner to transfer control of the contract to a newOwner.",
              "params": {
                "_newOwner": "The address to transfer ownership to."
              }
            }
          },
          "version": 1
        },
        "userdoc": {
          "kind": "user",
          "methods": {},
          "version": 1
        }
      },
      "settings": {
        "compilationTarget": {
          "./src/tests/mocks/zxc-mock.sol": "Ownable"
        },
        "evmVersion": "istanbul",
        "libraries": {},
        "metadata": {
          "bytecodeHash": "ipfs"
        },
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "remappings": []
      },
      "sources": {
        "./src/tests/mocks/zxc-mock.sol": {
          "keccak256": "0x634eb4521e64b1df18fbd4ea62183f2d83500a3de5d188b81ba6bde8d14c1640",
          "license": "MIT",
          "urls": [
            "bzz-raw://d7fab3e16fbba0fcc98c8bd99c924de1c65615cbcc8232174e8ce60794c81a20",
            "dweb:/ipfs/QmWphSBKPJhoHX58rDVzLWLa8UNYq6vTokdzLBDofVTCeP"
          ]
        }
      },
      "version": 1
    }
  },
  "Token": {
    "abi": [
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          },
          {
            "indexed": false,
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "Approval",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "_from",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "indexed": false,
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "Transfer",
        "type": "event"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          }
        ],
        "name": "allowance",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_remaining",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "approve",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          }
        ],
        "name": "balanceOf",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_balance",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "decimals",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "_decimals",
            "type": "uint8"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "name",
        "outputs": [
          {
            "internalType": "string",
            "name": "_name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "symbol",
        "outputs": [
          {
            "internalType": "string",
            "name": "_symbol",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "totalSupply",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_totalSupply",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "transfer",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_from",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "transferFrom",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      }
    ],
    "evm": {
      "bytecode": {
        "object": "608060405234801561001057600080fd5b506107af806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461011357806395d89b4114610126578063a9059cbb1461012e578063dd62ed3e1461014157610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d657806323b872dd146100eb575b600080fd5b6100a0610154565b6040516100ad919061067e565b60405180910390f35b6100c96100c436600461064a565b6101e6565b6040516100ad9190610673565b6100de6102a6565b6040516100ad91906106e2565b6100c96100f936600461060f565b6102ac565b610106610427565b6040516100ad91906106eb565b6100de6101213660046105c3565b610430565b6100a061044b565b6100c961013c36600461064a565b61045a565b6100de61014f3660046105dd565b61051e565b60606000805461016390610728565b80601f016020809104026020016040519081016040528092919081815260200182805461018f90610728565b80156101dc5780601f106101b1576101008083540402835291602001916101dc565b820191906000526020600020905b8154815290600101906020018083116101bf57829003601f168201915b5050505050905090565b600081158061021657503360009081526005602090815260408083206001600160a01b0387168452909152902054155b61023b5760405162461bcd60e51b8152600401610232906106d1565b60405180910390fd5b3360008181526005602090815260408083206001600160a01b03881680855292529182902085905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102959086906106e2565b60405180910390a350600192915050565b60035490565b6001600160a01b0383166000908152600460205260408120548211156102e45760405162461bcd60e51b8152600401610232906106d1565b6001600160a01b03841660009081526005602090815260408083203384529091529020548211156103275760405162461bcd60e51b8152600401610232906106d1565b6001600160a01b03841660009081526004602052604090205461034a9083610549565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610379908361057a565b6001600160a01b0380851660009081526004602090815260408083209490945591871681526005825282812033825290915220546103b79083610549565b6001600160a01b0380861660008181526005602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104159086906106e2565b60405180910390a35060019392505050565b60025460ff1690565b6001600160a01b031660009081526004602052604090205490565b60606001805461016390610728565b336000908152600460205260408120548211156104895760405162461bcd60e51b8152600401610232906106d1565b336000908152600460205260409020546104a39083610549565b33600090815260046020526040808220929092556001600160a01b038516815220546104cf908361057a565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102959086906106e2565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60008282111561056957634e487b7160e01b600052600160045260246000fd5b6105738284610711565b9392505050565b60008061058783856106f9565b90508381101561057357634e487b7160e01b600052600160045260246000fd5b80356001600160a01b03811681146105be57600080fd5b919050565b6000602082840312156105d4578081fd5b610573826105a7565b600080604083850312156105ef578081fd5b6105f8836105a7565b9150610606602084016105a7565b90509250929050565b600080600060608486031215610623578081fd5b61062c846105a7565b925061063a602085016105a7565b9150604084013590509250925092565b6000806040838503121561065c578182fd5b610665836105a7565b946020939093013593505050565b901515815260200190565b6000602080835283518082850152825b818110156106aa5785810183015185820160400152820161068e565b818111156106bb5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260009082015260400190565b90815260200190565b60ff91909116815260200190565b6000821982111561070c5761070c610763565b500190565b60008282101561072357610723610763565b500390565b60028104600182168061073c57607f821691505b6020821081141561075d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea264697066735822122098add1e622df34036b25e5fbc040dde4b345947a3738f33832fc64a2233d8d6c64736f6c63430008000033"
      },
      "methodIdentifiers": {
        "allowance(address,address)": "dd62ed3e",
        "approve(address,uint256)": "095ea7b3",
        "balanceOf(address)": "70a08231",
        "decimals()": "313ce567",
        "name()": "06fdde03",
        "symbol()": "95d89b41",
        "totalSupply()": "18160ddd",
        "transfer(address,uint256)": "a9059cbb",
        "transferFrom(address,address,uint256)": "23b872dd"
      }
    },
    "metadata": {
      "compiler": {
        "version": "0.8.0+commit.c7dfd78e"
      },
      "language": "Solidity",
      "output": {
        "abi": [
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              },
              {
                "indexed": false,
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "Approval",
            "type": "event"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "_from",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "indexed": false,
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "Transfer",
            "type": "event"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              }
            ],
            "name": "allowance",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_remaining",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "approve",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              }
            ],
            "name": "balanceOf",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_balance",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "decimals",
            "outputs": [
              {
                "internalType": "uint8",
                "name": "_decimals",
                "type": "uint8"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "name",
            "outputs": [
              {
                "internalType": "string",
                "name": "_name",
                "type": "string"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "symbol",
            "outputs": [
              {
                "internalType": "string",
                "name": "_symbol",
                "type": "string"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_totalSupply",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "transfer",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_from",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "transferFrom",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          }
        ],
        "devdoc": {
          "details": "Standard ERC20 token. This contract follows the implementation at https://goo.gl/mLbAPJ.",
          "kind": "dev",
          "methods": {
            "allowance(address,address)": {
              "details": "Returns the amount which _spender is still allowed to withdraw from _owner.",
              "params": {
                "_owner": "The address of the account owning tokens.",
                "_spender": "The address of the account able to transfer the tokens."
              }
            },
            "approve(address,uint256)": {
              "details": "Allows _spender to withdraw from your account multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value.",
              "params": {
                "_spender": "The address of the account able to transfer the tokens.",
                "_value": "The amount of tokens to be approved for transfer."
              }
            },
            "balanceOf(address)": {
              "details": "Returns the account balance of another account with address _owner.",
              "params": {
                "_owner": "The address from which the balance will be retrieved."
              }
            },
            "decimals()": {
              "details": "Returns the number of decimals the token uses."
            },
            "name()": {
              "details": "Returns the name of the token."
            },
            "symbol()": {
              "details": "Returns the symbol of the token."
            },
            "totalSupply()": {
              "details": "Returns the total token supply."
            },
            "transfer(address,uint256)": {
              "details": "Transfers _value amount of tokens to address _to, and MUST fire the Transfer event. The function SHOULD throw if the _from account balance does not have enough tokens to spend.",
              "params": {
                "_to": "The address of the recipient.",
                "_value": "The amount of token to be transferred."
              }
            },
            "transferFrom(address,address,uint256)": {
              "details": "Transfers _value amount of tokens from address _from to address _to, and MUST fire the Transfer event.",
              "params": {
                "_from": "The address of the sender.",
                "_to": "The address of the recipient.",
                "_value": "The amount of token to be transferred."
              }
            }
          },
          "stateVariables": {
            "allowed": {
              "details": "Token allowance mapping."
            },
            "balances": {
              "details": "Balance information map."
            },
            "tokenDecimals": {
              "details": "Number of decimals."
            },
            "tokenName": {
              "details": "Token name."
            },
            "tokenSymbol": {
              "details": "Token symbol."
            },
            "tokenTotalSupply": {
              "details": "Total supply of tokens."
            }
          },
          "title": "ERC20 standard token implementation.",
          "version": 1
        },
        "userdoc": {
          "kind": "user",
          "methods": {},
          "version": 1
        }
      },
      "settings": {
        "compilationTarget": {
          "./src/tests/mocks/zxc-mock.sol": "Token"
        },
        "evmVersion": "istanbul",
        "libraries": {},
        "metadata": {
          "bytecodeHash": "ipfs"
        },
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "remappings": []
      },
      "sources": {
        "./src/tests/mocks/zxc-mock.sol": {
          "keccak256": "0x634eb4521e64b1df18fbd4ea62183f2d83500a3de5d188b81ba6bde8d14c1640",
          "license": "MIT",
          "urls": [
            "bzz-raw://d7fab3e16fbba0fcc98c8bd99c924de1c65615cbcc8232174e8ce60794c81a20",
            "dweb:/ipfs/QmWphSBKPJhoHX58rDVzLWLa8UNYq6vTokdzLBDofVTCeP"
          ]
        }
      },
      "version": 1
    }
  },
  "Zxc": {
    "abi": [
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "constructor"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          },
          {
            "indexed": false,
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "Approval",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "_burner",
            "type": "address"
          },
          {
            "indexed": false,
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "Burn",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "previousOwner",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "name": "OwnershipTransferred",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "internalType": "address",
            "name": "_from",
            "type": "address"
          },
          {
            "indexed": true,
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "indexed": false,
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "Transfer",
        "type": "event"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          }
        ],
        "name": "allowance",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_remaining",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_spender",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "approve",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_owner",
            "type": "address"
          }
        ],
        "name": "balanceOf",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_balance",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "burn",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "claimOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "crowdsaleAddress",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "decimals",
        "outputs": [
          {
            "internalType": "uint8",
            "name": "_decimals",
            "type": "uint8"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "enableTransfer",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "name",
        "outputs": [
          {
            "internalType": "string",
            "name": "_name",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "owner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "pendingOwner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "crowdsaleAddr",
            "type": "address"
          }
        ],
        "name": "setCrowdsaleAddress",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "symbol",
        "outputs": [
          {
            "internalType": "string",
            "name": "_symbol",
            "type": "string"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [],
        "name": "totalSupply",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "_totalSupply",
            "type": "uint256"
          }
        ],
        "stateMutability": "view",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "transfer",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_from",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "_to",
            "type": "address"
          },
          {
            "internalType": "uint256",
            "name": "_value",
            "type": "uint256"
          }
        ],
        "name": "transferFrom",
        "outputs": [
          {
            "internalType": "bool",
            "name": "_success",
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "_newOwner",
            "type": "address"
          }
        ],
        "name": "transferOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
      }
    ],
    "evm": {
      "bytecode": {
        "object": "60806040523480156200001157600080fd5b50600680546001600160a01b031916331790556040805180820190915260158082527f3078636572742050726f746f636f6c20546f6b656e000000000000000000000060209092019182526200006a916000916200012b565b50604080518082019091526003808252625a584360e81b602090920191825262000097916001916200012b565b506002805460ff191660121790556b019d971e4fe8401e7400000060038190556007805460ff60a01b19169055600680546001600160a01b0390811660009081526004602052604080822085905592549251929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200011d91620001d1565b60405180910390a362000217565b8280546200013990620001da565b90600052602060002090601f0160209004810192826200015d5760008555620001a8565b82601f106200017857805160ff1916838001178555620001a8565b82800160010185558215620001a8579182015b82811115620001a85782518255916020019190600101906200018b565b50620001b6929150620001ba565b5090565b5b80821115620001b65760008155600101620001bb565b90815260200190565b600281046001821680620001ef57607f821691505b602082108114156200021157634e487b7160e01b600052602260045260246000fd5b50919050565b610d3080620002276000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634e71e0c8116100a2578063a9059cbb11610071578063a9059cbb146101f3578063dd62ed3e14610206578063e30c397814610219578063f1b50c1d14610221578063f2fde38b146102295761010b565b80634e71e0c8146101c857806370a08231146101d05780638da5cb5b146101e357806395d89b41146101eb5761010b565b806323b872dd116100de57806323b872dd14610178578063313ce5671461018b57806331d2f891146101a057806342966c68146101b55761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461014e5780631f35bc4014610163575b600080fd5b61011861023c565b6040516101259190610bff565b60405180910390f35b61014161013c366004610b9f565b6102ce565b6040516101259190610bf4565b61015661038e565b6040516101259190610c63565b610176610171366004610b18565b610394565b005b610141610186366004610b64565b6103e0565b6101936104b3565b6040516101259190610c6c565b6101a86104bc565b6040516101259190610be0565b6101766101c3366004610bc8565b6104cb565b610176610606565b6101566101de366004610b18565b610690565b6101a86106ab565b6101186106ba565b610141610201366004610b9f565b6106c9565b610156610214366004610b32565b61079a565b6101a86107c5565b6101766107d4565b610176610237366004610b18565b610813565b60606000805461024b90610ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610ca9565b80156102c45780601f10610299576101008083540402835291602001916102c4565b820191906000526020600020905b8154815290600101906020018083116102a757829003601f168201915b5050505050905090565b60008115806102fe57503360009081526005602090815260408083206001600160a01b0387168452909152902054155b6103235760405162461bcd60e51b815260040161031a90610c52565b60405180910390fd5b3360008181526005602090815260408083206001600160a01b03881680855292529182902085905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061037d908690610c63565b60405180910390a350600192915050565b60035490565b6006546001600160a01b031633146103be5760405162461bcd60e51b815260040161031a90610c52565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600754600090600160a01b900460ff168061040557506008546001600160a01b031633145b6104215760405162461bcd60e51b815260040161031a90610c52565b826001600160a01b0381166104485760405162461bcd60e51b815260040161031a90610c52565b6001600160a01b0381163014156104715760405162461bcd60e51b815260040161031a90610c52565b6008546001600160a01b038281169116141561049f5760405162461bcd60e51b815260040161031a90610c52565b6104aa85858561085f565b95945050505050565b60025460ff1690565b6008546001600160a01b031681565b6006546001600160a01b031633146104f55760405162461bcd60e51b815260040161031a90610c52565b336000908152600460205260409020548111156105245760405162461bcd60e51b815260040161031a90610c52565b6006546001600160a01b031660009081526004602052604090205461054990826109da565b6006546001600160a01b031660009081526004602052604090205560035461057190826109da565b6003556006546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906105b3908490610c63565b60405180910390a26006546040516000916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105fb908590610c63565b60405180910390a350565b6007546001600160a01b031633146106305760405162461bcd60e51b815260040161031a90610c52565b60068054600780546001600160a01b03198084166001600160a01b038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6001600160a01b031660009081526004602052604090205490565b6006546001600160a01b031681565b60606001805461024b90610ca9565b600754600090600160a01b900460ff16806106ee57506008546001600160a01b031633145b61070a5760405162461bcd60e51b815260040161031a90610c52565b826001600160a01b0381166107315760405162461bcd60e51b815260040161031a90610c52565b6001600160a01b03811630141561075a5760405162461bcd60e51b815260040161031a90610c52565b6008546001600160a01b03828116911614156107885760405162461bcd60e51b815260040161031a90610c52565b6107928484610a0b565b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6007546001600160a01b031681565b6006546001600160a01b031633146107fe5760405162461bcd60e51b815260040161031a90610c52565b6007805460ff60a01b1916600160a01b179055565b6006546001600160a01b0316331461083d5760405162461bcd60e51b815260040161031a90610c52565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600460205260408120548211156108975760405162461bcd60e51b815260040161031a90610c52565b6001600160a01b03841660009081526005602090815260408083203384529091529020548211156108da5760405162461bcd60e51b815260040161031a90610c52565b6001600160a01b0384166000908152600460205260409020546108fd90836109da565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461092c9083610acf565b6001600160a01b03808516600090815260046020908152604080832094909455918716815260058252828120338252909152205461096a90836109da565b6001600160a01b0380861660008181526005602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109c8908690610c63565b60405180910390a35060019392505050565b6000828211156109fa57634e487b7160e01b600052600160045260246000fd5b610a048284610c92565b9392505050565b33600090815260046020526040812054821115610a3a5760405162461bcd60e51b815260040161031a90610c52565b33600090815260046020526040902054610a5490836109da565b33600090815260046020526040808220929092556001600160a01b03851681522054610a809083610acf565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061037d908690610c63565b600080610adc8385610c7a565b905083811015610a0457634e487b7160e01b600052600160045260246000fd5b80356001600160a01b0381168114610b1357600080fd5b919050565b600060208284031215610b29578081fd5b610a0482610afc565b60008060408385031215610b44578081fd5b610b4d83610afc565b9150610b5b60208401610afc565b90509250929050565b600080600060608486031215610b78578081fd5b610b8184610afc565b9250610b8f60208501610afc565b9150604084013590509250925092565b60008060408385031215610bb1578182fd5b610bba83610afc565b946020939093013593505050565b600060208284031215610bd9578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610c2b57858101830151858201604001528201610c0f565b81811115610c3c5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260009082015260400190565b90815260200190565b60ff91909116815260200190565b60008219821115610c8d57610c8d610ce4565b500190565b600082821015610ca457610ca4610ce4565b500390565b600281046001821680610cbd57607f821691505b60208210811415610cde57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220571490f7e4fd86e5745247189159da72912187599a55a29b96ef63f1ea47d3c664736f6c63430008000033"
      },
      "methodIdentifiers": {
        "allowance(address,address)": "dd62ed3e",
        "approve(address,uint256)": "095ea7b3",
        "balanceOf(address)": "70a08231",
        "burn(uint256)": "42966c68",
        "claimOwnership()": "4e71e0c8",
        "crowdsaleAddress()": "31d2f891",
        "decimals()": "313ce567",
        "enableTransfer()": "f1b50c1d",
        "name()": "06fdde03",
        "owner()": "8da5cb5b",
        "pendingOwner()": "e30c3978",
        "setCrowdsaleAddress(address)": "1f35bc40",
        "symbol()": "95d89b41",
        "totalSupply()": "18160ddd",
        "transfer(address,uint256)": "a9059cbb",
        "transferFrom(address,address,uint256)": "23b872dd",
        "transferOwnership(address)": "f2fde38b"
      }
    },
    "metadata": {
      "compiler": {
        "version": "0.8.0+commit.c7dfd78e"
      },
      "language": "Solidity",
      "output": {
        "abi": [
          {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              },
              {
                "indexed": false,
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "Approval",
            "type": "event"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "_burner",
                "type": "address"
              },
              {
                "indexed": false,
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "Burn",
            "type": "event"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "previousOwner",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
              }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
          },
          {
            "anonymous": false,
            "inputs": [
              {
                "indexed": true,
                "internalType": "address",
                "name": "_from",
                "type": "address"
              },
              {
                "indexed": true,
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "indexed": false,
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "Transfer",
            "type": "event"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              }
            ],
            "name": "allowance",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_remaining",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_spender",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "approve",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_owner",
                "type": "address"
              }
            ],
            "name": "balanceOf",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_balance",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "burn",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "claimOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "crowdsaleAddress",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "decimals",
            "outputs": [
              {
                "internalType": "uint8",
                "name": "_decimals",
                "type": "uint8"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "enableTransfer",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "name",
            "outputs": [
              {
                "internalType": "string",
                "name": "_name",
                "type": "string"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "owner",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "pendingOwner",
            "outputs": [
              {
                "internalType": "address",
                "name": "",
                "type": "address"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "crowdsaleAddr",
                "type": "address"
              }
            ],
            "name": "setCrowdsaleAddress",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "symbol",
            "outputs": [
              {
                "internalType": "string",
                "name": "_symbol",
                "type": "string"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [],
            "name": "totalSupply",
            "outputs": [
              {
                "internalType": "uint256",
                "name": "_totalSupply",
                "type": "uint256"
              }
            ],
            "stateMutability": "view",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "transfer",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_from",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_to",
                "type": "address"
              },
              {
                "internalType": "uint256",
                "name": "_value",
                "type": "uint256"
              }
            ],
            "name": "transferFrom",
            "outputs": [
              {
                "internalType": "bool",
                "name": "_success",
                "type": "bool"
              }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
          },
          {
            "inputs": [
              {
                "internalType": "address",
                "name": "_newOwner",
                "type": "address"
              }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
          }
        ],
        "devdoc": {
          "events": {
            "Burn(address,uint256)": {
              "details": "An event which is triggered when tokens are burned.",
              "params": {
                "_burner": "The address which burns tokens.",
                "_value": "The amount of burned tokens."
              }
            }
          },
          "kind": "dev",
          "methods": {
            "allowance(address,address)": {
              "details": "Returns the amount which _spender is still allowed to withdraw from _owner.",
              "params": {
                "_owner": "The address of the account owning tokens.",
                "_spender": "The address of the account able to transfer the tokens."
              }
            },
            "approve(address,uint256)": {
              "details": "Allows _spender to withdraw from your account multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value.",
              "params": {
                "_spender": "The address of the account able to transfer the tokens.",
                "_value": "The amount of tokens to be approved for transfer."
              }
            },
            "balanceOf(address)": {
              "details": "Returns the account balance of another account with address _owner.",
              "params": {
                "_owner": "The address from which the balance will be retrieved."
              }
            },
            "burn(uint256)": {
              "details": "Burns a specific amount of tokens. This function is based on BurnableToken implementation at goo.gl/GZEhaq.",
              "params": {
                "_value": "The amount of tokens to be burned."
              }
            },
            "claimOwnership()": {
              "details": "Allows the current pending owner to claim the ownership of the contract. It emits OwnershipTransferred event and resets pending owner to 0."
            },
            "constructor": {
              "details": "Contract constructor."
            },
            "decimals()": {
              "details": "Returns the number of decimals the token uses."
            },
            "enableTransfer()": {
              "details": "Enables token transfers."
            },
            "name()": {
              "details": "Returns the name of the token."
            },
            "setCrowdsaleAddress(address)": {
              "details": "Set crowdsale address which can distribute tokens even when onlyWhenTransferAllowed is false.",
              "params": {
                "crowdsaleAddr": "Address of token offering contract."
              }
            },
            "symbol()": {
              "details": "Returns the symbol of the token."
            },
            "totalSupply()": {
              "details": "Returns the total token supply."
            },
            "transfer(address,uint256)": {
              "details": "Transfers token to a specified address.",
              "params": {
                "_to": "The address to transfer to.",
                "_value": "The amount to be transferred."
              }
            },
            "transferFrom(address,address,uint256)": {
              "details": "Transfers tokens from one address to another.",
              "params": {
                "_from": "address The address which you want to send tokens from.",
                "_to": "address The address which you want to transfer to.",
                "_value": "uint256 The amount of tokens to be transferred."
              }
            },
            "transferOwnership(address)": {
              "details": "Allows the current owner to give new owner ability to claim the ownership of the contract. This differs from the Owner's function in that it allows setting pedingOwner address to 0x0, which effectively cancels an active claim.",
              "params": {
                "_newOwner": "The address which can claim ownership of the contract."
              }
            }
          },
          "stateVariables": {
            "crowdsaleAddress": {
              "details": "Crowdsale smart contract address."
            },
            "transferEnabled": {
              "details": "Transfer feature state."
            }
          },
          "version": 1
        },
        "userdoc": {
          "kind": "user",
          "methods": {
            "burn(uint256)": {
              "notice": "Only owner is allowed to perform this operation."
            }
          },
          "version": 1
        }
      },
      "settings": {
        "compilationTarget": {
          "./src/tests/mocks/zxc-mock.sol": "Zxc"
        },
        "evmVersion": "istanbul",
        "libraries": {},
        "metadata": {
          "bytecodeHash": "ipfs"
        },
        "optimizer": {
          "enabled": true,
          "runs": 200
        },
        "remappings": []
      },
      "sources": {
        "./src/tests/mocks/zxc-mock.sol": {
          "keccak256": "0x634eb4521e64b1df18fbd4ea62183f2d83500a3de5d188b81ba6bde8d14c1640",
          "license": "MIT",
          "urls": [
            "bzz-raw://d7fab3e16fbba0fcc98c8bd99c924de1c65615cbcc8232174e8ce60794c81a20",
            "dweb:/ipfs/QmWphSBKPJhoHX58rDVzLWLa8UNYq6vTokdzLBDofVTCeP"
          ]
        }
      },
      "version": 1
    }
  }
}