[
{
"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"
}
]