{
  "_format": "hh-sol-artifact-1",
  "contractName": "FixedPointMock",
  "sourceName": "contracts/test/math/FixedPointMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "aInflated",
          "type": "uint256"
        }
      ],
      "name": "FixedPointDivInternal",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "b",
          "type": "uint256"
        }
      ],
      "name": "FixedPointMulOverflow",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FixedPointZeroDivision",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "b",
          "type": "uint256"
        }
      ],
      "name": "divDown",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "b",
          "type": "uint256"
        }
      ],
      "name": "divUp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "b",
          "type": "uint256"
        }
      ],
      "name": "mulDown",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "a",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "b",
          "type": "uint256"
        }
      ],
      "name": "mulUp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610418806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630c9b9881146100515780639ba5f52e14610076578063cbe8623f14610089578063f3e4f87c1461009c575b600080fd5b61006461005f366004610391565b6100af565b60405190815260200160405180910390f35b610064610084366004610391565b6100c4565b610064610097366004610391565b6100d0565b6100646100aa366004610391565b6100dc565b60006100bb83836100e8565b90505b92915050565b60006100bb8383610165565b60006100bb838361021e565b60006100bb83836102e7565b6000828202831580159061010b575082848281610107576101076103b3565b0414155b15610151576040517fe8e4a4fa00000000000000000000000000000000000000000000000000000000815260048101859052602481018490526044015b60405180910390fd5b670de0b6b3a7640000815b04949350505050565b6000816000036101a1576040517fb8a2f92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036101b1575060006100be565b670de0b6b3a7640000838102908482816101cd576101cd6103b3565b041461020f576040517fea7b49e60000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610148565b82818161015c5761015c6103b3565b60008160000361025a576040517fb8a2f92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260000361026a575060006100be565b670de0b6b3a764000083810290848281610286576102866103b3565b04146102c8576040517fea7b49e60000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610148565b8260018203816102da576102da6103b3565b0460010191505092915050565b6000828202831580159061030a575082848281610306576103066103b3565b0414155b1561034b576040517fe8e4a4fa0000000000000000000000000000000000000000000000000000000081526004810185905260248101849052604401610148565b801561038657670de0b6b3a76400007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820104600101610389565b60005b949350505050565b600080604083850312156103a457600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212200a1ada1908f18a86864435430ae6f263a80d67841ee487676bd70d4070ea069b64736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630c9b9881146100515780639ba5f52e14610076578063cbe8623f14610089578063f3e4f87c1461009c575b600080fd5b61006461005f366004610391565b6100af565b60405190815260200160405180910390f35b610064610084366004610391565b6100c4565b610064610097366004610391565b6100d0565b6100646100aa366004610391565b6100dc565b60006100bb83836100e8565b90505b92915050565b60006100bb8383610165565b60006100bb838361021e565b60006100bb83836102e7565b6000828202831580159061010b575082848281610107576101076103b3565b0414155b15610151576040517fe8e4a4fa00000000000000000000000000000000000000000000000000000000815260048101859052602481018490526044015b60405180910390fd5b670de0b6b3a7640000815b04949350505050565b6000816000036101a1576040517fb8a2f92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826000036101b1575060006100be565b670de0b6b3a7640000838102908482816101cd576101cd6103b3565b041461020f576040517fea7b49e60000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610148565b82818161015c5761015c6103b3565b60008160000361025a576040517fb8a2f92100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260000361026a575060006100be565b670de0b6b3a764000083810290848281610286576102866103b3565b04146102c8576040517fea7b49e60000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610148565b8260018203816102da576102da6103b3565b0460010191505092915050565b6000828202831580159061030a575082848281610306576103066103b3565b0414155b1561034b576040517fe8e4a4fa0000000000000000000000000000000000000000000000000000000081526004810185905260248101849052604401610148565b801561038657670de0b6b3a76400007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820104600101610389565b60005b949350505050565b600080604083850312156103a457600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea26469706673582212200a1ada1908f18a86864435430ae6f263a80d67841ee487676bd70d4070ea069b64736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
