Bush Contract Registry ABI

[
  {
    "inputs": [
      {
        "internalType": "contract IVault",
        "name": "vault",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "ContractAddressAlreadyRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "ContractAddressNotRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      }
    ],
    "name": "ContractAliasInUseAsName",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "ContractAlreadyDeprecated",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      }
    ],
    "name": "ContractNameAlreadyRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "ContractNameInUseAsAlias",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      }
    ],
    "name": "ContractNameNotRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "FactoryNotAContract",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "factoryVault",
        "type": "address"
      }
    ],
    "name": "FactoryVaultMismatch",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "hook",
        "type": "address"
      }
    ],
    "name": "HookNotAContract",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "InconsistentState",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidContractAlias",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidContractName",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidPoolType",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SenderNotAllowed",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "enum HookMode",
        "name": "hookMode",
        "type": "uint8"
      },
      {
        "internalType": "address",
        "name": "hook",
        "type": "address"
      }
    ],
    "name": "UnexpectedHookAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "UseRegisterPoolFactory",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "VaultNotSet",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroContractAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroHookAddress",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "BushContractDeprecated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "indexed": true,
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "BushContractDeregistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "indexed": true,
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "BushContractRegistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "string",
        "name": "contractAlias",
        "type": "string"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "ContractAliasUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "factory",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "poolType",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "enum HookMode",
        "name": "hookMode",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "hook",
        "type": "address"
      }
    ],
    "name": "PoolFactoryRegistered",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "contractAlias",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "addOrUpdateBushContractAlias",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "deprecateBushContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      }
    ],
    "name": "deregisterBushContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "selector",
        "type": "bytes4"
      }
    ],
    "name": "getActionId",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAllPoolFactories",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "factories",
        "type": "address[]"
      },
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolType",
            "type": "string"
          },
          {
            "internalType": "enum HookMode",
            "name": "hookMode",
            "type": "uint8"
          },
          {
            "internalType": "address",
            "name": "hook",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "isRegistered",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "isActive",
            "type": "bool"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryInfo[]",
        "name": "infos",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAllPoolFactoryDetails",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "factory",
            "type": "address"
          },
          {
            "components": [
              {
                "internalType": "string",
                "name": "name",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "poolType",
                "type": "string"
              },
              {
                "internalType": "enum HookMode",
                "name": "hookMode",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "hook",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "isRegistered",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isActive",
                "type": "bool"
              }
            ],
            "internalType": "struct IBushContractRegistry.FactoryInfo",
            "name": "info",
            "type": "tuple"
          },
          {
            "internalType": "string",
            "name": "factoryVersion",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolVersion",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "isDisabled",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "poolCount",
            "type": "uint256"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryDetails[]",
        "name": "details",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAuthorizer",
    "outputs": [
      {
        "internalType": "contract IAuthorizer",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      }
    ],
    "name": "getBushContract",
    "outputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "isActive",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "getBushContractInfo",
    "outputs": [
      {
        "components": [
          {
            "internalType": "enum ContractType",
            "name": "contractType",
            "type": "uint8"
          },
          {
            "internalType": "bool",
            "name": "isRegistered",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "isActive",
            "type": "bool"
          }
        ],
        "internalType": "struct IBushContractRegistry.ContractInfo",
        "name": "info",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "name": "getFactoryDetailsForPool",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "factory",
            "type": "address"
          },
          {
            "components": [
              {
                "internalType": "string",
                "name": "name",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "poolType",
                "type": "string"
              },
              {
                "internalType": "enum HookMode",
                "name": "hookMode",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "hook",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "isRegistered",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isActive",
                "type": "bool"
              }
            ],
            "internalType": "struct IBushContractRegistry.FactoryInfo",
            "name": "info",
            "type": "tuple"
          },
          {
            "internalType": "string",
            "name": "factoryVersion",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolVersion",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "isDisabled",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "poolCount",
            "type": "uint256"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryDetails",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "name": "getFactoryForPool",
    "outputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      },
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolType",
            "type": "string"
          },
          {
            "internalType": "enum HookMode",
            "name": "hookMode",
            "type": "uint8"
          },
          {
            "internalType": "address",
            "name": "hook",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "isRegistered",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "isActive",
            "type": "bool"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryInfo",
        "name": "info",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolFactories",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "poolType",
        "type": "string"
      },
      {
        "internalType": "bool",
        "name": "activeOnly",
        "type": "bool"
      }
    ],
    "name": "getPoolFactoriesByType",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "factories",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      }
    ],
    "name": "getPoolFactory",
    "outputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      },
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolType",
            "type": "string"
          },
          {
            "internalType": "enum HookMode",
            "name": "hookMode",
            "type": "uint8"
          },
          {
            "internalType": "address",
            "name": "hook",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "isRegistered",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "isActive",
            "type": "bool"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryInfo",
        "name": "info",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "getPoolFactoryAt",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolFactoryCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "getPoolFactoryDetails",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "factory",
            "type": "address"
          },
          {
            "components": [
              {
                "internalType": "string",
                "name": "name",
                "type": "string"
              },
              {
                "internalType": "string",
                "name": "poolType",
                "type": "string"
              },
              {
                "internalType": "enum HookMode",
                "name": "hookMode",
                "type": "uint8"
              },
              {
                "internalType": "address",
                "name": "hook",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "isRegistered",
                "type": "bool"
              },
              {
                "internalType": "bool",
                "name": "isActive",
                "type": "bool"
              }
            ],
            "internalType": "struct IBushContractRegistry.FactoryInfo",
            "name": "info",
            "type": "tuple"
          },
          {
            "internalType": "string",
            "name": "factoryVersion",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolVersion",
            "type": "string"
          },
          {
            "internalType": "bool",
            "name": "isDisabled",
            "type": "bool"
          },
          {
            "internalType": "uint256",
            "name": "poolCount",
            "type": "uint256"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryDetails",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "getPoolFactoryHook",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "getPoolFactoryInfo",
    "outputs": [
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "poolType",
            "type": "string"
          },
          {
            "internalType": "enum HookMode",
            "name": "hookMode",
            "type": "uint8"
          },
          {
            "internalType": "address",
            "name": "hook",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "isRegistered",
            "type": "bool"
          },
          {
            "internalType": "bool",
            "name": "isActive",
            "type": "bool"
          }
        ],
        "internalType": "struct IBushContractRegistry.FactoryInfo",
        "name": "info",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getVault",
    "outputs": [
      {
        "internalType": "contract IVault",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "isActiveBushContract",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "isActivePoolFactory",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "poolType",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "isActivePoolFactoryOfType",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "name": "isPoolFromRegisteredFactory",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "poolType",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      }
    ],
    "name": "isPoolOfType",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      }
    ],
    "name": "isRegisteredPoolFactory",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "router",
        "type": "address"
      }
    ],
    "name": "isTrustedRouter",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "enum ContractType",
        "name": "contractType",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "contractName",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "registerBushContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "factory",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "poolType",
        "type": "string"
      },
      {
        "internalType": "enum HookMode",
        "name": "hookMode",
        "type": "uint8"
      },
      {
        "internalType": "address",
        "name": "hook",
        "type": "address"
      }
    ],
    "name": "registerPoolFactory",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]