[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_stakingNFT",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_coverContract",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_tokenController",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_master",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_stakingProducts",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "allocationId",
        "type": "uint256"
      }
    ],
    "name": "AlreadyDeallocated",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientCapacity",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientDepositAmount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidStakingPoolForToken",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidTokenId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ManagerNxmIsLockedForGovernanceVote",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MaxPoolFeeAbove100",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NewTrancheEndsBeforeInitialTranche",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotTokenOwnerOrApproved",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NxmIsLockedForGovernanceVote",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyCoverContract",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyManager",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OnlyStakingProductsContract",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PoolFeeExceedsMax",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PoolHalted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PrivatePool",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "RequestedTrancheIsExpired",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "RequestedTrancheIsNotYetActive",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "RevertedWithoutReason",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "RewardRatioTooHigh",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SystemPaused",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "bucketId",
        "type": "uint256"
      }
    ],
    "name": "BucketExpired",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "productId",
        "type": "uint256"
      }
    ],
    "name": "Deallocated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "initialTrancheId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newTrancheId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "topUpAmount",
        "type": "uint256"
      }
    ],
    "name": "DepositExtended",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "manager",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newFee",
        "type": "uint256"
      }
    ],
    "name": "PoolFeeChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "manager",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "isPrivate",
        "type": "bool"
      }
    ],
    "name": "PoolPrivacyChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "StakeBurned",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "StakeDeposited",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      }
    ],
    "name": "TrancheExpired",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tranche",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountStakeWithdrawn",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountRewardsWithdrawn",
        "type": "uint256"
      }
    ],
    "name": "Withdraw",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "ALLOCATION_UNITS_PER_NXM",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "BUCKET_DURATION",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "BUCKET_TRANCHE_GROUP_SIZE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "CAPACITY_REDUCTION_DENOMINATOR",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "COVER_TRANCHE_GROUP_SIZE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "GLOBAL_CAPACITY_DENOMINATOR",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_ACTIVE_TRANCHES",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "NXM_PER_ALLOCATION_UNIT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "POOL_FEE_DENOMINATOR",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "REWARDS_DENOMINATOR",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TRANCHE_DURATION",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WEIGHT_DENOMINATOR",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "allocationId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "productId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "start",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "period",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "deallocationAmount",
            "type": "uint256"
          }
        ],
        "internalType": "struct BurnStakeParams",
        "name": "params",
        "type": "tuple"
      }
    ],
    "name": "burnStake",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "coverTrancheAllocations",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "requestTokenId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "destination",
        "type": "address"
      }
    ],
    "name": "depositTo",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "deposits",
    "outputs": [
      {
        "internalType": "uint96",
        "name": "lastAccNxmPerRewardShare",
        "type": "uint96"
      },
      {
        "internalType": "uint96",
        "name": "pendingRewards",
        "type": "uint96"
      },
      {
        "internalType": "uint128",
        "name": "stakeShares",
        "type": "uint128"
      },
      {
        "internalType": "uint128",
        "name": "rewardsShares",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "expiringCoverBuckets",
    "outputs": [
      {
        "internalType": "TrancheGroupBucket",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "initialTrancheId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "targetTrancheId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "topUpAmount",
        "type": "uint256"
      }
    ],
    "name": "extendDeposit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAccNxmPerRewardsShare",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "productId",
        "type": "uint256"
      }
    ],
    "name": "getActiveAllocations",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "trancheAllocations",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getActiveStake",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "productId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "globalCapacityRatio",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "capacityReductionRatio",
        "type": "uint256"
      }
    ],
    "name": "getActiveTrancheCapacities",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "trancheCapacities",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256",
        "name": "totalCapacity",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      }
    ],
    "name": "getDeposit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "lastAccNxmPerRewardShare",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "pendingRewards",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "stakeShares",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "rewardsShares",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      }
    ],
    "name": "getExpiredTranche",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "accNxmPerRewardShareAtExpiry",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "stakeAmountAtExpiry",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "stakeSharesSupplyAtExpiry",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getFirstActiveBucketId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getFirstActiveTrancheId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLastAccNxmUpdate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMaxPoolFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getNextAllocationId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getRewardPerSecond",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getRewardsSharesSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getStakeSharesSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "trancheId",
        "type": "uint256"
      }
    ],
    "name": "getTranche",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "stakeShares",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "rewardsShares",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "productId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "firstTrancheId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "trancheCount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "capacityRatio",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "reductionRatio",
        "type": "uint256"
      }
    ],
    "name": "getTrancheCapacities",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "trancheCapacities",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_isPrivatePool",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_initialPoolFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_maxPoolFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_poolId",
        "type": "uint256"
      }
    ],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isHalted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isPrivatePool",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "manager",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes[]",
        "name": "data",
        "type": "bytes[]"
      }
    ],
    "name": "multicall",
    "outputs": [
      {
        "internalType": "bytes[]",
        "name": "results",
        "type": "bytes[]"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "updateUntilCurrentTimestamp",
        "type": "bool"
      }
    ],
    "name": "processExpirations",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "previousPremium",
        "type": "uint256"
      },
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "productId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "coverId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "allocationId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "period",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "gracePeriod",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "useFixedPrice",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "previousStart",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "previousExpiration",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "previousRewardsRatio",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "globalCapacityRatio",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "capacityReductionRatio",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "rewardRatio",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "productMinPrice",
            "type": "uint256"
          }
        ],
        "internalType": "struct AllocationRequest",
        "name": "request",
        "type": "tuple"
      }
    ],
    "name": "requestAllocation",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "premium",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "allocationId",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "rewardPerSecondCut",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newFee",
        "type": "uint256"
      }
    ],
    "name": "setPoolFee",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_isPrivatePool",
        "type": "bool"
      }
    ],
    "name": "setPoolPrivacy",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "trancheAllocationGroups",
    "outputs": [
      {
        "internalType": "TrancheAllocationGroup",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "withdrawStake",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "withdrawRewards",
        "type": "bool"
      },
      {
        "internalType": "uint256[]",
        "name": "trancheIds",
        "type": "uint256[]"
      }
    ],
    "name": "withdraw",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "withdrawnStake",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "withdrawnRewards",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]