{
  "_format": "hh-sol-artifact-1",
  "contractName": "Vesting",
  "sourceName": "src/contracts/mixins/Vesting.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "VestingNotCancelable",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Vested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isCancelable",
          "type": "bool"
        }
      ],
      "name": "VestingAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "freedVestingBeneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "VestingStopped",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VESTING_PERIOD_IN_SECONDS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "cumulativeVestedBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "fullAllocation",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isCancelable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "newlyVestedBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "vestedAllocation",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vestingStart",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50426080526080516103586100366000396000818160ba01526101d301526103586000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a2a626f81161005b578063a2a626f8146100ef578063acaf21f71461010f578063be1ae6f914610122578063ffd93cd51461012d57600080fd5b80631051e84f14610082578063254800d4146100b557806368700028146100dc575b600080fd5b6100a261009036600461022e565b60016020526000908152604090205481565b6040519081526020015b60405180910390f35b6100a27f000000000000000000000000000000000000000000000000000000000000000081565b6100a26100ea36600461022e565b610160565b6100a26100fd36600461022e565b60006020819052908152604090205481565b6100a261011d36600461022e565b61019f565b6100a26307861f8081565b61015061013b36600461022e565b60026020526000908152604090205460ff1681565b60405190151581526020016100ac565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604081205461018f8361019f565b6101999190610293565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120546307861f80906102026101f87f000000000000000000000000000000000000000000000000000000000000000042610293565b6307861f80610216565b61020c91906102aa565b61019991906102e7565b60008183106102255781610227565b825b9392505050565b60006020828403121561024057600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461022757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156102a5576102a5610264565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156102e2576102e2610264565b500290565b60008261031d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212205371d72a384cc1edcf07720a118349df04edb2b538e2bf350c5991a5e307a24964736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a2a626f81161005b578063a2a626f8146100ef578063acaf21f71461010f578063be1ae6f914610122578063ffd93cd51461012d57600080fd5b80631051e84f14610082578063254800d4146100b557806368700028146100dc575b600080fd5b6100a261009036600461022e565b60016020526000908152604090205481565b6040519081526020015b60405180910390f35b6100a27f000000000000000000000000000000000000000000000000000000000000000081565b6100a26100ea36600461022e565b610160565b6100a26100fd36600461022e565b60006020819052908152604090205481565b6100a261011d36600461022e565b61019f565b6100a26307861f8081565b61015061013b36600461022e565b60026020526000908152604090205460ff1681565b60405190151581526020016100ac565b73ffffffffffffffffffffffffffffffffffffffff811660009081526020819052604081205461018f8361019f565b6101999190610293565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120546307861f80906102026101f87f000000000000000000000000000000000000000000000000000000000000000042610293565b6307861f80610216565b61020c91906102aa565b61019991906102e7565b60008183106102255781610227565b825b9392505050565b60006020828403121561024057600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461022757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156102a5576102a5610264565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156102e2576102e2610264565b500290565b60008261031d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212205371d72a384cc1edcf07720a118349df04edb2b538e2bf350c5991a5e307a24964736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
