{
  "version": "v4.2.5",
  "name": "AlphUnstakeVault",
  "bytecode": "060540ea40f841384172418c0000030901409216020c3013415e7b160016010c0d3687170316001601371704160316043616031604314c020d4a010c36170516050c2f4c04160416022d02160216053313415f7b160016011602871706160516061604334c020d4a010c361705160416063617040c1602361602381707160216072d1702160416072d17040c16073616072d0d351707160416051607373917040f1602370e3a170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e160216083736371708160416083702010000000103d3f10c9d97ce020201000003014020d3223281b2ce040c3313167b5617001600ce033413177b1600ce032b1701ce0217021601ce04314c0516021601ce04000017021602a0002b0201020102011fd30e00e856b417011601ce0077457a4b04181601ce014513147b160000023213157bce011600a8a00016002aa100a000ce022f0201020001000bd38e18691cb417001600ce00774513147bce01b0",
  "codeHash": "5216c458f360d0f51f5e2109a760814ff97eab76f546adc835eb318c6cbc5256",
  "fieldsSig": {
    "names": [
      "xalphToken",
      "unstakerAddress",
      "totalUnstakeAmount",
      "unstakeStartTime",
      "unstakeDuration",
      "withdrawnAmount"
    ],
    "types": [
      "XAlphToken",
      "Address",
      "U256",
      "U256",
      "U256",
      "U256"
    ],
    "isMutable": [
      false,
      false,
      false,
      false,
      false,
      true
    ]
  },
  "eventsSig": [],
  "functions": [
    {
      "name": "mulDiv",
      "paramNames": [
        "a",
        "b",
        "denominator"
      ],
      "paramTypes": [
        "U256",
        "U256",
        "U256"
      ],
      "paramIsMutable": [
        false,
        false,
        true
      ],
      "returnTypes": [
        "U256"
      ]
    },
    {
      "name": "getTotalUnstakeAmount",
      "paramNames": [],
      "paramTypes": [],
      "paramIsMutable": [],
      "returnTypes": [
        "U256"
      ]
    },
    {
      "name": "getClaimableAmount",
      "paramNames": [],
      "paramTypes": [],
      "paramIsMutable": [],
      "returnTypes": [
        "U256"
      ]
    },
    {
      "name": "claim",
      "paramNames": [
        "amount"
      ],
      "paramTypes": [
        "U256"
      ],
      "paramIsMutable": [
        false
      ],
      "returnTypes": [
        "Bool"
      ]
    },
    {
      "name": "destroy",
      "paramNames": [],
      "paramTypes": [],
      "paramIsMutable": [],
      "returnTypes": []
    }
  ],
  "constants": [],
  "enums": [
    {
      "name": "FullMathError",
      "fields": [
        {
          "name": "DivByZero",
          "value": {
            "type": "U256",
            "value": "350"
          }
        },
        {
          "name": "MulDivOverflow",
          "value": {
            "type": "U256",
            "value": "351"
          }
        }
      ]
    },
    {
      "name": "ErrorCodes",
      "fields": [
        {
          "name": "InvalidCaller",
          "value": {
            "type": "U256",
            "value": "20"
          }
        },
        {
          "name": "InsufficientClaimableAmount",
          "value": {
            "type": "U256",
            "value": "21"
          }
        },
        {
          "name": "InvalidUnstakeDuration",
          "value": {
            "type": "U256",
            "value": "22"
          }
        },
        {
          "name": "InvalidTimestamp",
          "value": {
            "type": "U256",
            "value": "23"
          }
        }
      ]
    }
  ]
}