{
  "_format": "hh-sol-artifact-1",
  "contractName": "NavigatorFeeUtils",
  "sourceName": "contracts/navigator/libraries/NavigatorFeeUtils.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        }
      ],
      "name": "FeesForfeited",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "unlockRound",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "currentRound",
          "type": "uint256"
        }
      ],
      "name": "FeesStillLocked",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "NoFeesToClaim",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FeeClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FeeDeposited",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "rewardAmount",
          "type": "uint256"
        }
      ],
      "name": "calculateFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "navigatorFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "citizenReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeeLockPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRoundFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "currentRound",
          "type": "uint256"
        }
      ],
      "name": "isRoundFeeUnlocked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61062a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c806311efbf611461007c57806316a39d55146100975780633b103ee5146100ba578063531a62ea146100c257806378603c2f146100e457806399a5d74714610104578063b9c64fcd1461012c575b600080fd5b61008461013f565b6040519081526020015b60405180910390f35b6100aa6100a5366004610489565b610152565b604051901515815260200161008e565b61008461017c565b8180156100ce57600080fd5b506100e26100dd3660046104c7565b61018f565b005b8180156100f057600080fd5b506100e26100ff3660046104c7565b61035f565b6101176101123660046104fa565b6103ee565b6040805192835260208301919091520161008e565b61008461013a366004610513565b61042e565b6000610149610465565b60140154905090565b60008061015d610465565b905080601301548461016f9190610553565b8310159150505b92915050565b6000610186610465565b60130154905090565b6000610199610465565b6001600160a01b038516600090815260158201602052604090205490915060ff16156101e85760405163f0eebcd160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6001600160a01b03841660009081526012820160209081526040808320868452909152812054908190036102335784846040516353c10d2f60e01b81526004016101df929190610566565b60008260130154856102459190610553565b905080841015610279576040516356de5c3d60e01b81526004810186905260248101829052604481018590526064016101df565b6001600160a01b038087166000908152601285016020908152604080832089845290915280822091909155600480860154915163a9059cbb60e01b8152919092169163a9059cbb916102cf918a91879101610566565b6020604051808303816000875af11580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610312919061057f565b5084866001600160a01b03167f534114bde8a4f5487c6eb9d267c214944566cf13de30333c7a2abed6857634cf8460405161034f91815260200190565b60405180910390a3505050505050565b6000610369610465565b6001600160a01b038516600090815260128201602090815260408083208784529091528120805492935084929091906103a3908490610553565b909155505060405182815283906001600160a01b038616907f275b89eed5ec7d2f5c81a082034b08ff5a7a7ef3ad201abbb3524d0b95a348919060200160405180910390a350505050565b60008060006103fb610465565b905061271081601401548561041091906105a8565b61041a91906105bf565b925061042683856105e1565b915050915091565b6000610438610465565b6001600160a01b039390931660009081526012909301602090815260408085209385529290525090205490565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b6000806040838503121561049c57600080fd5b50508035926020909101359150565b80356001600160a01b03811681146104c257600080fd5b919050565b6000806000606084860312156104dc57600080fd5b6104e5846104ab565b95602085013595506040909401359392505050565b60006020828403121561050c57600080fd5b5035919050565b6000806040838503121561052657600080fd5b61052f836104ab565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101765761017661053d565b6001600160a01b03929092168252602082015260400190565b60006020828403121561059157600080fd5b815180151581146105a157600080fd5b9392505050565b80820281158282048414176101765761017661053d565b6000826105dc57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156101765761017661053d56fea26469706673582212208d4c4ab7dd2ee7427a3f32df8c84390b2f20c2a1a57111b195b46f54984a951264736f6c63430008140033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c806311efbf611461007c57806316a39d55146100975780633b103ee5146100ba578063531a62ea146100c257806378603c2f146100e457806399a5d74714610104578063b9c64fcd1461012c575b600080fd5b61008461013f565b6040519081526020015b60405180910390f35b6100aa6100a5366004610489565b610152565b604051901515815260200161008e565b61008461017c565b8180156100ce57600080fd5b506100e26100dd3660046104c7565b61018f565b005b8180156100f057600080fd5b506100e26100ff3660046104c7565b61035f565b6101176101123660046104fa565b6103ee565b6040805192835260208301919091520161008e565b61008461013a366004610513565b61042e565b6000610149610465565b60140154905090565b60008061015d610465565b905080601301548461016f9190610553565b8310159150505b92915050565b6000610186610465565b60130154905090565b6000610199610465565b6001600160a01b038516600090815260158201602052604090205490915060ff16156101e85760405163f0eebcd160e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6001600160a01b03841660009081526012820160209081526040808320868452909152812054908190036102335784846040516353c10d2f60e01b81526004016101df929190610566565b60008260130154856102459190610553565b905080841015610279576040516356de5c3d60e01b81526004810186905260248101829052604481018590526064016101df565b6001600160a01b038087166000908152601285016020908152604080832089845290915280822091909155600480860154915163a9059cbb60e01b8152919092169163a9059cbb916102cf918a91879101610566565b6020604051808303816000875af11580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610312919061057f565b5084866001600160a01b03167f534114bde8a4f5487c6eb9d267c214944566cf13de30333c7a2abed6857634cf8460405161034f91815260200190565b60405180910390a3505050505050565b6000610369610465565b6001600160a01b038516600090815260128201602090815260408083208784529091528120805492935084929091906103a3908490610553565b909155505060405182815283906001600160a01b038616907f275b89eed5ec7d2f5c81a082034b08ff5a7a7ef3ad201abbb3524d0b95a348919060200160405180910390a350505050565b60008060006103fb610465565b905061271081601401548561041091906105a8565b61041a91906105bf565b925061042683856105e1565b915050915091565b6000610438610465565b6001600160a01b039390931660009081526012909301602090815260408085209385529290525090205490565b7f2556f61b975c74e3f128bbc478158bc306f6253c34d95084531f202ce74e570090565b6000806040838503121561049c57600080fd5b50508035926020909101359150565b80356001600160a01b03811681146104c257600080fd5b919050565b6000806000606084860312156104dc57600080fd5b6104e5846104ab565b95602085013595506040909401359392505050565b60006020828403121561050c57600080fd5b5035919050565b6000806040838503121561052657600080fd5b61052f836104ab565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101765761017661053d565b6001600160a01b03929092168252602082015260400190565b60006020828403121561059157600080fd5b815180151581146105a157600080fd5b9392505050565b80820281158282048414176101765761017661053d565b6000826105dc57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156101765761017661053d56fea26469706673582212208d4c4ab7dd2ee7427a3f32df8c84390b2f20c2a1a57111b195b46f54984a951264736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
