[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "governor_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "params_",
        "type": "tuple",
        "internalType": "struct AnemosConfig.Params",
        "components": [
          {
            "name": "virtualTokens",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "curveSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "poolSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "graduationHype",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "batchDuration",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "maxBatchParticipants",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "tradeFeeBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "creatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "boostedCreatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "anemosBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "kntqBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "tickerFundBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "treasuryBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorBudgetBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDiscountBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDuration",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "acceptGovernor",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "addresses",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct AnemosConfig.Addresses",
        "components": [
          {
            "name": "factory",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "feeRouter",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "graduator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "floor",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "locker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "router",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tailwind",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "staking",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "treasury",
            "type": "address",
            "internalType": "address"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "factory",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "feeRouter",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "floor",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "governor",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "graduator",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "locker",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "params",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct AnemosConfig.Params",
        "components": [
          {
            "name": "virtualTokens",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "curveSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "poolSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "graduationHype",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "batchDuration",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "maxBatchParticipants",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "tradeFeeBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "creatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "boostedCreatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "anemosBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "kntqBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "tickerFundBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "treasuryBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorBudgetBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDiscountBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDuration",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingGovernor",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "proposeGovernor",
    "inputs": [
      {
        "name": "next",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "router",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "setAddresses",
    "inputs": [
      {
        "name": "addrs_",
        "type": "tuple",
        "internalType": "struct AnemosConfig.Addresses",
        "components": [
          {
            "name": "factory",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "feeRouter",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "graduator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "floor",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "locker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "router",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tailwind",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "staking",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "treasury",
            "type": "address",
            "internalType": "address"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setParams",
    "inputs": [
      {
        "name": "params_",
        "type": "tuple",
        "internalType": "struct AnemosConfig.Params",
        "components": [
          {
            "name": "virtualTokens",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "curveSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "poolSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "graduationHype",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "batchDuration",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "maxBatchParticipants",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "tradeFeeBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "creatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "boostedCreatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "anemosBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "kntqBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "tickerFundBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "treasuryBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorBudgetBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDiscountBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDuration",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "staking",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "tailwind",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "treasury",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "virtualHype",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "AddressesUpdated",
    "inputs": [
      {
        "name": "addrs",
        "type": "tuple",
        "indexed": false,
        "internalType": "struct AnemosConfig.Addresses",
        "components": [
          {
            "name": "factory",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "feeRouter",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "graduator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "floor",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "locker",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "router",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "tailwind",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "staking",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "treasury",
            "type": "address",
            "internalType": "address"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "GovernorAccepted",
    "inputs": [
      {
        "name": "governor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "GovernorProposed",
    "inputs": [
      {
        "name": "pending",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ParamsUpdated",
    "inputs": [
      {
        "name": "params",
        "type": "tuple",
        "indexed": false,
        "internalType": "struct AnemosConfig.Params",
        "components": [
          {
            "name": "virtualTokens",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "curveSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "poolSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "graduationHype",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "batchDuration",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "maxBatchParticipants",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "tradeFeeBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "creatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "boostedCreatorShareBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "anemosBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "kntqBuybackBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "tickerFundBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "treasuryBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorBudgetBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDiscountBps",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "floorDuration",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "InvalidParams",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotGovernor",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroAddress",
    "inputs": []
  }
]