{
  "_format": "hh-sol-artifact-1",
  "contractName": "ITaxTermsRegistry",
  "sourceName": "contracts/tax/tax-terms-registry/ITaxTermsRegistry.sol",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidContractEntityInterface",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        },
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        }
      ],
      "name": "MissingProtocolTaxTerms",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        },
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        }
      ],
      "name": "MissingUniverseTaxTerms",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolGlobalTaxTermsMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolUniverseTaxTermsMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolWarperTaxTermsMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "UniverseLocalTaxTermsMismatch",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "UniverseWarperTaxTermsMismatch",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "strategyData",
          "type": "bytes"
        }
      ],
      "name": "ProtocolGlobalTaxTermsRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolGlobalTaxTermsRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "strategyData",
          "type": "bytes"
        }
      ],
      "name": "ProtocolUniverseTaxTermsRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolUniverseTaxTermsRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "strategyData",
          "type": "bytes"
        }
      ],
      "name": "ProtocolWarperTaxTermsRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        }
      ],
      "name": "ProtocolWarperTaxTermsRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "strategyData",
          "type": "bytes"
        }
      ],
      "name": "UniverseLocalTaxTermsRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        }
      ],
      "name": "UniverseLocalTaxTermsRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "strategyData",
          "type": "bytes"
        }
      ],
      "name": "UniverseWarperTaxTermsRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "strategyId",
          "type": "bytes4"
        }
      ],
      "name": "UniverseWarperTaxTermsRemoved",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "areRegisteredProtocolGlobalTaxTerms",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "areRegisteredProtocolUniverseTaxTerms",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "areRegisteredProtocolWarperTaxTerms",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "areRegisteredUniverseLocalTaxTerms",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "areRegisteredUniverseWarperTaxTerms",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "taxStrategyId",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "universeId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warperAddress",
              "type": "address"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.Params",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "checkRegisteredProtocolTaxTermsWithParams",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "taxStrategyId",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "universeId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warperAddress",
              "type": "address"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.Params",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "checkRegisteredUniverseTaxTermsWithParams",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "contractKey",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "taxStrategyId",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "universeId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warperAddress",
              "type": "address"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.Params",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "protocolTaxTerms",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "registerProtocolGlobalTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "registerProtocolUniverseTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "registerProtocolWarperTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "registerUniverseLocalTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "registerUniverseWarperTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "removeProtocolGlobalTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "removeProtocolUniverseTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "removeProtocolWarperTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "removeUniverseLocalTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "universeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "warperAddress",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "taxStrategyId",
          "type": "bytes4"
        }
      ],
      "name": "removeUniverseWarperTaxTerms",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "taxStrategyId",
              "type": "bytes4"
            },
            {
              "internalType": "uint256",
              "name": "universeId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warperAddress",
              "type": "address"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.Params",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "universeTaxTerms",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
